Science des données
[Link]
Vincent Taboga
(Basé sur les cours de prof. Gauthier Gidel et Glen Berseth)
1
[Link]@[Link]
1. Qu’est-ce que la
science des données?
2
Ce n’est pas de l’apprentissage machine!
La théorie de l'apprentissage c'est La science des données, c'est
comme la physique théorique comme l'ingénierie
3
Ce n’est pas de l’apprentissage machine!
La science des données, c'est l’aspect pratique / empirique de
l’apprentissage machine:
● Comment répondre à des questions à partir des données?
○ Comment traiter des données?
○ Comment entraîner efficacement nos modèles?
○ Comment mettre à l’échelle nos systèmes?
4
Une définition possible de la science des données
"La science des données est l'application de techniques
informatiques et statistiques pour résoudre ou mieux
comprendre un problème dans le monde réel"
Source : cours de Zico Kolter sur la science des données
5
Comment extraire des informations utiles des données ?
1. Commencer par trouver des données
● Quelles données sont disponibles?
● Qualité des données?
● A-t-on besoin de plus? A-t-on besoin de traitement?
2. Analyser les données
● Quelle algorithme / modèle utiliser?
● Comment savoir si le modèle fonctionne?
● Comment l’améliorer?
3. Mettre à l’échelle le système (MLOps)
● Comment utiliser les ressources disponibles?
● Comment distribuer les calculs?
● Comment créer des expériences reproductibles?
● Comment partager son code?
6
La science des données c’est
Source : [Link]
7
2. Exemple concret
8
Exemple: Problème de commande d'un repas
Vous travaillez pour une célèbre entreprise de livraison de nourriture
Question: Quel repas devriez vous proposer à un utilisateur se connectant sur le site?
9
Exemple: Problème de commande d'un repas
Quelle nourriture devrions-nous suggérer?
- Données:
- Mouvement de la souris
- Historique de recherches
- Analyse:
- Que doit-on prévoir ?
- Comment entraîner un modèle pour le prédire ?
- Comment savons-nous que le modèle fonctionne ?
- Échelle:
- Nous avons 10 000 personnes qui utilisent le site/heure
- Quel matériel devons-nous utiliser ?
- Comment pouvons-nous faciliter l'exécution de ce code dans le cloud ?
10
Les données - Que faut-il utiliser ?
Vous voulez prédire ce que les utilisateurs vont commander.
● Mouvement de la souris (x)
- Séquence de points en 2d
- [123,34], [124,34], [124, 33], …
- Plus des clics à des moments précis
- [r, 1.2s], [l, 2.3s], …
- Est-ce assez?
● Rétroaction (y)
- Résultat de la sélection des aliments
● Est-ce assez?
- Ajouter l'heure de la journée, etc.
11
Analyse des données
former un modèle, quel type de modèle
● De quel type est l'entrée ? (X)
- Séquence de points en 2d
- [123,34], [124,34], [124, 33], …
- Plus des clics à des moments précis
- [r, 1.2s], [l, 2.3s], …
● Rétroaction (y)
- La sortie y est un type d'aliment.
- Résultat de la sélection des aliments
- Prédiction multi-classes
● Problèmes possibles
- Classification, régression
- Clustering, réduction de la dimensionnalité
-> Quelle formulation choisir?
12
Analyse: choix du modèle
Quelle modèle de classification?
● Machine à vecteurs de support (SVM)?
○ La théorie est cool
○ Difficile à appliquer en grande dimension
● Régression linéaire?
○ Simple à appliquer
○ Est-ce que le choix du repas dépend linéairement du mouvement de la souris?
-> Malheureusement non
● Réseaux de Neurones?
○ Peuvent être long et difficile à entraîner
○ Dur d’interpréter les résultats
13
Prétraitement et augmentation des données
Comment pouvons-nous préparer les données pour faciliter le travail des modèles
- Prétraitement :
- Données pas bonnes ⇒ prédictions pas
bonnes
- Traiter les données pour éliminer les ordures
- Augmentation:
- Mise à l'échelle des données
- Construire d’autres entrées
- etc..
14
Ingénierie des caractéristiques :
sélectionner de meilleures caractéristiques
Toutes les caractéristiques ne sont pas égales, utilisez les meilleures
- Qu'est-ce qu'une caractéristique:
- X = [123,34], [124,34], [124, 33]
- Peut-être que les 10 dernières valeurs de X
fonctionnent le mieux
- Sélection:
- Réduire la taille d'entrée
- Corrélation avec la sortie y
15
Analyse du modèle
Le modèle s'adapte-t-il bien aux données ?
● Sous-entraînement: Le modèle n’explique pas
assez les données
- Exemple: Les modèles linéaires ont peu
d'expressivité
● Sur-entraînement: Le modèle explique trop les
données
- Le modèle a appris des cas particuliers
- Ces cas particuliers ne font pas partie de la
vraie distribution.
16
Analyse du modèle
Le modèle s'adapte-t-il bien aux données ?
● Comment savoir si l'entraînement est bon: Validation
- Laissez de côté certaines données enregistrées pour
les tests
- Validation croisée
● Comment obtenir un meilleur ajustement
- Prendre un modèle expressif et régulariser
- Rasoir d'Occam : le modèle le plus simple qui
explique les données est le meilleur.
17
Complexité du modèle et comment la mesurer
● Arbres de décision
- profondeur de l'arbre
● Forêts aléatoires
- nombres d'arbres
- profondeurs des arbres.
● Réseaux profonds
- Nombre de paramètres
- Nombre de couches
18
Entraînement du modèle
Comment tirer les meilleures performances?
-> Le modèle est-il suffisamment performant ?
On peut souvent améliorer les performances en:
• Prétraiter les données
• Comment diviser les données pour le test/la validation
• Avons-nous suffisamment de données à diviser ?
• Réglage du modèle :
• Tous les modèles ont des hyper paramètres
• Nombre d'arbres, grappes, paramètres
• Essayez différentes valeurs de ces
19
Présentation des résultats
Visualisation des données
Comment montrer à nous-mêmes et aux autres que le modèle fonctionne
- Exploration:
- Y a-t-il d'autres tendances dans les données ?
- Comment les trouver ?
- Présentation:
- La meilleure façon d'afficher l'exploration ?
- Vous voulez une visualisation compacte avec
peu de bruit
- Visualisations avancées :
- Visualisation multimodale
- Visualisations interactives
- Les pièges de la visualisation
20
Test d'hypothèse : Ayez confiance en votre modèle
Dans quelle mesure sommes-nous confiants dans nos résultats ?
● Tests d'hypothèses
- Test statistique de vraisemblance
● Méthodes
- Simulation directe
- mélanger
- Amorçage
- Validation croisée
21
Virtualisation avec Docker : code portable et
reproductible
● Déployer le code sur les serveurs de l'entreprise
- Comment rendre cela facile ?
● Machines virtuelles (VM) :
- Simulez un tout nouveau système
d'exploitation sur
un système existant
- Copiez cette configuration sur plusieurs
ordinateurs
● Docker:
- Un écosystème de VM légères
- Facile à partager avec d'autres et à déployer
● Utile pour la recherche d'hyper-paramètres
- Reproduire votre code sur plusieurs
ordinateurs
22
Mise à l'échelle : suivi des expériences
Lorsque vous travaillez à grande échelle, vous devez vous organiser à grande échelle
- Qu'est-ce que la mise à l'échelle :
- Vos expériences sont dans le cloud
- Vos données sont dans le cloud
- Vous devez analyser les résultats
- Suivi des expériences :
- Vérifier les expériences pendant leur
exécution
- Effectuer une exploration et une analyse
supplémentaires
- Reproduire une expérience ?
23
Matériel nécessaire, apprentissage distribué
• Quel matériel devrions-nous acheter pour exécuter notre
algorithme ?
• Faut justifier ça au patron
• Matériel:
• Traitement d'image?
• Combien de requêtes/minute ?
• Pouvons-nous optimiser pour économiser.
• Distribuer:
• Quel ordinateur cloud utiliser ?
• Dépend des hypothèses du modèle
24
Biais algorithmique
- Comment savons-nous que les prévisions sont
justes ?
- Les données sont-elles vraiment équitables ?
- Biais:
- Les données sont collectées par des personnes
- Certains groupes apparaissent plus souvent
dans les données
- Les personnes avec plus de $$$ utilisent
plus souvent le système de commande en ligne
- Équité:
- Comprendre les effets de ces problèmes
- Rendez votre modèle et vos données plus
équitables
- Éviter d'amplifier les biais historiques
25
Données d'images : Changement de représentation ?
● Quelle est la meilleure façon de traiter les
données ?
- Comme texte/image/graphique ?
● Conversion de données :
- Le traitement d'image est puissant
- Convertir des données en images.
- [123,34], [124,34], [124, 33] -> image
● Autres représentations :
- Beaucoup de choses peuvent être
converties en images
- Les images occupent de l'espace sur le
disque
- Compromis entre le temps de traitement et
l'espace disque
26
Données de texte
• Particularités du texte
• Tâches standards
• prétraitement
• difficultées:
• ambiguïté syntaxique
• importance du contexte
• Modèles probabilistes
• NGrams
• Techniques de plongement lexical
• SVD (Décomposition en valeurs
singulières)
• Word2Vec
27
Données de Graphes
● Particularité des graphes
• Tâches standard
• représentation
• matrice d'adjacence, Laplacien
● Techniques de plongement de noeuds
• par similarité de noeuds
• marche aléatoires
28
La science des données nécessite des compétences
diverses
29
Retour à ce qu'est la science des données
Ce n’est pas un processus linéaire!
Source : [Link]
30
Data science is NOT the new oil
Contrairement au pétrole, il est dur de savoir ce que
faire exactement de chaque jeu de données pour en
tirer profit.
31
Les données c’est comme du dessert!
● Les données sont générées
par les humains
● Les données proviennent de
plein de domaines
différents
● Les données varient même
au sein d’un même domaine
32
Logistique
33
Étape 1: Le site web du cours
Informations utiles / syllabus : Site du cours
● Vérifiez les pré-requis
● Horaire du cours
● Notes sur l’IA générative (attention!)
34
Étape 2: Piazza [Lien]
● Toutes les communications sont faites sur Piazza: notes de cours, devoirs
● Questions et discussions (aucune question par mail)
● Pas de Studium
○ Soyez sur d’avoir accès à Piazza
○ Vérifiez régulièrement le contenu sur Piazza
35
Étape 3: (IFT 6758)
Répondez à ce sondage cette semaine pour composer les groupes du projet de session:
[Lien du sondage]
36
Évaluations
IFT 6758A IFT 3700A
● Devoirs de programmation (20%) ● Devoirs de programmation (35%)
● Un intra (20%) ● Un intra (30%)
● Un Final (25%) ● Un Final (35%)
● Un projet de session (35%)
Nous utiliserons Gradescope pour la remise des devoirs.
37
Le projet de session
Cassons la glace!
38
Le projet final:
Analyse des données de la LNH
● API pour collecter les données
● Visualiser les données
● Application de modèles de ML
Le challenge: des données réelles!
Le but: construire un pipeline prêt
pour une mise en production
39
Ressources utiles
Livres : apprentissage statistique, manuel Python, introduction à la science des données
Cours en ligne : freeCodeCamp , Harvard CS109
Examen de la science des données de Harvard
40