Mis à jour le 14/05/2018
  • 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

Ce cours est en vidéo.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !

Comment résoudre un problème de data science ?

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

La data science (ou science des données en français) et le machine learning (ou apprentissage automatique) sont deux mots très en vogue lorsque l'on parle de la révolution Big Data, de prédiction des comportements ou tout simplement de la transformation numérique des entreprises. Et comme pour tous les domaines innovants, il est parfois difficile de bien comprendre de quoi il s'agit. 

C'est pourquoi avant de rentrer dans le vif du sujet et de ne parler que de la partie machine learning, je vous propose de refaire avec moi un tour rapide du métier complet de data scientist. Dans ce chapitre, nous allons prendre un peu de hauteur et observer en quoi consiste le cycle habituel de travail des data scientists, pour comprendre à quelle étape intervient le machine learning. Go !

Déjà, quand peut-on utiliser la data science ?

Pour rappel, voici ce que dit la définition Wikipédia du métier de data scientist :

Le premier objectif du data scientist est de produire des méthodes (automatisées, autant que possible) de tri et d'analyse de données de masse et de sources plus ou moins complexes ou disjointes de données, afin d'en extraire des informations utiles ou potentiellement utiles.

Le métier de data scientist est apparu pour trois raisons principales :

  • l'explosion de la quantité de données produites et collectées par les humains

  • l'amélioration et l'accessibilité plus grande des algorithmes de machine learning

  • l'augmentation exponentielle des capacités de calcul des ordinateurs

Comme une mode s'est créée autour de ces métiers, un premier réflexe des entreprises est de penser que la data science (et donc le machine learning) constitue une sorte de baguette magique qui va pouvoir prédire toute sorte de choses avec une précision hors du commun. 🔮

Deux composantes sont nécessaires pour pouvoir commencer à se demander si la data science peut, oui ou non, apporter de la valeur et aider à la résolution d'un problème : des données et une problématique bien définie.

Les données

Cela paraît évident, les données constituent la ressource principale pour qu'un data scientist puisse effectuer son travail correctement. Après tout, c'est tout de même le data de data science. Donc si dès le départ, vous ne voyez aucune manière de récupérer des données liées au problème que vous cherchez à résoudre, considérez que vous ne pourrez pas aider sur ce problème.

Une problématique bien définie

Il existe un spectre assez large de problématiques que l'on peut résoudre en data science. Mais on peut aussi facilement en exclure un certain nombre, surtout si vous vous trouvez dans un milieu d'entreprise, avec des contraintes de temps fortes pour produire des résultats.

Estimer la faisabilité d'un projet est toujours compliqué en data science, et il est normal que cela vous paraisse très flou si vous débutez juste ! Ce n'est qu'en pratiquant, en développant votre propre expérience dans le domaine, que vous arriverez à affiner votre jugement et à redéfinir précisément des problématiques mal définies ou irréalistes. À la fin de ce cours, vous aurez déjà commencé à acquérir quelques réflexes de ce côté là...

Pour commencer, voici déjà quelques exemples que l'on peut estimer réalistes :

  • Prédire les ventes d'une campagne marketing

  • Identifier si une image est déjà présente dans une banque d'image existante

  • Segmenter les utilisateurs d'un site en plusieurs groupes en fonction de leur comportement sur le site

Et quelques exemples beaucoup plus difficiles :

  • Détecter l'ironie dans une phrase

  • Savoir si une corrélation entre deux variables est une causalité ou pas 

Il est difficile d'évaluer la difficulté d'un problème de data science - xkcd.com/1425
Il est difficile d'évaluer la difficulté d'un problème de data science - xkcd.com/1425

Première étape : trouvez les données 🔍

Une fois que vous êtes décidé à attaquer un problème, la première chose à faire est d'explorer toutes les pistes possibles pour récupérer les données. En effet, les données constituent l'expérience, les exemples que vous allez fournir à votre algorithme de machine learning afin qu'il puisse apprendre et devenir plus performant (pas de panique, nous étudierons dans les prochains chapitres ce que ça signifie concrètement).

Tout doit passer au crible ! Les bases de données existantes, des données brutes alternatives (image, son), et même la création de nouveaux canaux d'acquisition de données. Essayez de trouver l'ensemble des variables qui impactent de près ou de loin le phénomène qui vous intéresse.

Vous trouverez ci-dessous quelques exemples où les data scientists ont redoublé d'ingéniosité pour récupérer et utiliser leurs données de manière originale.

Les images satellites pour évaluer le niveau de pauvreté

Des chercheurs ont utilisé le machine learning pour pouvoir cartographier les zones de pauvreté de manière automatique, simplement à partir d'images satellites !

/// Petite explication de ce qu'on voit sur l'image ? /// (crédits : )
Une cartographie de l'estimation de la consommation moyenne quotidienne (crédits : Neal Jean et al.)

Les CAPTCHAs pour la digitalisation automatique de livres

Luis von Ahn, entrepreneur et chercheur, a créé un célèbre système de reCAPTCHA qui permettait à la fois aux sites web de valider que les formulaires étaient bien remplis par des humains, et qui alimentait en même temps la base de données d'un algorithme de digitalisation de livres. Grâce aux nombreux exemples renseignés directement par des humains, l'algorithme a fini par avoir suffisamment de données d'exemples pour réussir ensuite seul à retranscrire en texte des images scannées de livres, avec un taux d'erreur très faible.

Vous pouvez consulter le site du projet pour en savoir plus.

Luis von Ahn, entrepreneur et chercheur, a crée un système de CAPTCHA qui à la fois permet aux site de valider que les inscriptions sont bien effectuées par des humains et en même temps, aidait un algorithme à la digitalisation de livres
Exemple de reCAPTCHA

Les habitudes d'utilisation des téléphones mobiles pour détecter l'illettrisme

Un chercheur norvégien a utilisé plusieurs types de données mobiles (tels que les SMS, le nombre de contacts, etc.) pour détecter les personnes illettrées dans les pays en voie de développement. Allez voir cet article pour en savoir plus.

Un chercheur norvégien a utilisé plusieurs types de données mobiles (les SMS, le nombre de contacts, etc) pour détecter les personnes illetrées dans les pays en voie de développement.
Chaque plan représente une caractéristique différente récupérée sur un téléphone et légendée à droite. Source: arxiv.org/abs/1607.01337

Nettoyez les données

Une fois les données trouvées, il faut passer à l'étape de nettoyage. Sans mentir, ce n'est pas l'étape la plus agréable du travail, mais ça ne la rend pas moins indispensable.

Il convient de bien s'assurer que les données sont consistantes, sans valeurs aberrantes ni manquantes.

Passez à l'exploration !

Les données bien propres peuvent maintenant commencer à être explorées. Cette étape vous permet de mieux comprendre les différents comportements et de bien saisir le phénomène sous-jacent.

N'hésitez pas à afficher toutes sortes de graphiques, confronter les différentes variables les unes aux autres, tester des hypothèses de corrélation, etc.

C'est vraiment une étape à ne pas négliger, les meilleurs data scientists ne sont pas ceux qui connaissent les algorithmes les plus complexes mais ceux qui ont une très bonne connaissance des données, et ont préparé le terrain avec soin en amont.

À la fin de l’exploration, vous devrez être en mesure de :

  • Proposer plusieurs hypothèses sur les causes sous-jacentes à la génération du dataset : "suite à l'exploration, il y a clairement une relation entre X et Y"

  • Proposer plusieurs pistes de modélisation statistique possible des données (nous étudierons cette partie en détail dans la suite du cours), qui vont permettre de résoudre la problématique de départ considérée

  • Proposer si nécessaire de nouvelles sources de données qui aideraient à mieux comprendre le phénomène

Modélisez les données à l'aide du machine learning

Aah on peut enfin rentrer dans la partie la plus intéressante du métier, c’est à dire la création du modèle statistique associé aux données qui nous intéressent ! 🤓  C'est ce qu'on appelle machine learning (ou apprentissage automatique). 

Euh mais ça veut dire quoi “modélisation statistique des données” ?

En machine learning et en data science plus généralement, l'objectif est de trouver un modèle (stochastique ou déterministe) du phénomène à l'origine des données. C'est à dire qu'on considère que chaque donnée observée est l'expression d'une variable aléatoire générée par une distribution de probabilité.

Le mieux pour expliquer ce que ça signifie est de prendre un petit exemple simple. Imaginez que vous voulez savoir si vous payez trop cher votre loyer. Vous avez récupéré sur un site de location une trentaine de prix des locations disponibles, ainsi que la surface associée :

loyer mensuel (en €)

surface (en $\(m^2\)$

 1500

 32

 2120

 65

 2500

 60

...

...

Si on affiche maintenant ces différents points sur un graphe qui représente le montant du loyer en fonction de la surface, on obtient la figure suivante :

Le loyer mensuel en fonction de la surface du logement
Loyer mensuel en fonction de la surface du logement

Comme on pouvait s’y attendre, on remarque une augmentation relativement linéaire du loyer par rapport à la surface de l’appartement. Une première modélisation simple du phénomène (le prix du loyer) serait donc simplement de considérer la droite la plus “proche” de l’ensemble des points.

la droite de régression correspondant à la modélisation statistique du nuage de points
La droite de régression correspondant à la modélisation du nuage de points

La droite représente donc notre modèle du phénomène, auquel nous pouvons ajouter l'intervalle de confiance dans laquelle on pense que se trouve la droite.

l'intervalle de confiance (à 90%) que les point se trouvent dans cette zone
L'intervalle de confiance (à 90%)  

Pour résumer, le travail de modélisation consiste à trouver le bon modèle statistique (ici la droite et son intervalle de confiance) qui colle le mieux aux données d'exemple. Le machine learning en particulier intervient pour trouver ce modèle de manière automatisée.

Évaluez et interprétez les résultats

Une fois un premier travail de modélisation effectué, la suite de l’étude s’effectue par l’évaluation de la qualité de notre modèle, c’est à dire sa capacité à représenter avec exactitude notre phénomène, ou a minima sa capacité à résoudre notre problématique.

Une représentation connue qui souligne la nécessité de l'évaluation est le quartet d'Anscombe. Il permet de montrer visuellement que pour 4 jeux de données très différents, on obtient la même droite de régression.

Le quartet d'anscombe
Le quartet d'Anscombe illustre bien le fait que si on n'examine pas assez les données, et on ne mesure pas de la bonne manière l'erreur de son modèle, on peut facilement arriver à des aberrations de modélisation

Il y a parfois clairement un problème dans notre modèle qui ne capture pas l'essence du phénomène. Pour nous aider à évaluer les résultats, mesurer l’erreur de notre modélisation vis-à-vis de nos données d’exemple constitue un premier indicateur de qualité. Dans les cas ci-dessus, il faudrait clairement changer le modèle d’une droite que nous avions décidé au départ !

C’est donc un jeu d’allers-retours entre modélisation et évaluation qui s’effectue pour obtenir les performances les plus satisfaisantes possibles. Il est même possible dans certains cas de remettre en question certaines hypothèses de départ et de repartir dans une phase d’exploration pour mieux comprendre les données.

Déployez le modèle en production

Une fois qu’on est satisfait de la qualité des performances de notre modèle, on va pouvoir passer à l’étape suivante, qui est le rendu de nos résultats et le potentiel déploiement du modèle en production. Imaginez que vous trouvez que votre modèle d’évaluation des loyers est très performant, et mériterait d’être partagé à plus de monde. Vous décidez donc de le déployer sur un serveur ou tout le monde pourra obtenir une estimation de son loyer selon votre modèle, et ainsi déterminer s'il paie plus ou moins que les prix du marché ! Cela l'aidera sûrement dans sa décision de déménager. 😬

Comment ça fonctionne en pratique ? C’est assez simple, il vous suffit de récupérer les paramètres de votre modèle et de faire passer la surface de l'appartement en entrée du modèle, afin d’obtenir le loyer associé en sortie, en suivant la droite.

Imaginez qu'un appartement a une surface de 30m carré, une estimation légitime du loyer se situerait aux alentours de 1300 euros
Imaginez qu'un appartement a une surface de 30 mètres carrés (point en rouge), une estimation légitime du loyer se situerait aux alentours de 1300 euros selon notre modèle

Pour des modèles plus complexes, le fonctionnement reste le même, si vous voulez appliquer votre travail à de nouvelles données, il vous suffit de passer les nouvelles entrées dans votre modèle (qui est en principe un ensemble de transformations des valeurs d’entrées) afin d’obtenir une sortie.

En résumé

Le cycle final de travail du data scientist qu'on vient d'esquisser se représente donc de la manière suivante :

Cycle de travail du data scientist - en.wikipedia.org/wiki/Data_science pouet
Cycle de travail du data scientist (crédits : Wikipedia - Farcaster) 

Il comprend notamment :

  • la récupération des données utiles à l'étude

  • le nettoyage des données pour les rendre exploitables

  • une longue phase d'exploration des données afin de comprendre en profondeur l'articulation des données

  • la modélisation des données

  • l'évaluation et interprétation des résultats

  • la conclusion de l'étude : prise de décision ou déploiement en production du modèle

Au sein de ce cycle, le machine learning désigne l'ensemble des méthodes de modélisation statistique à partir des données, et se situe bien au coeur du travail de data scientist.

Exemple de certificat de réussite
Exemple de certificat de réussite