Mis à jour le dimanche 19 novembre 2017
  • 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 !

Qu'est-ce que le machine learning ?

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

Dans le chapitre précédent, nous avons pu y voir plus clair sur le cycle global de travail du data scientist. Nous allons maintenant parler spécifiquement de la partie qui nous intéresse dans ce cours, c'est à dire la modélisation. Et pour modéliser les données, un vrai data scientist utilise son arme secrète de ninja : le fameux machine learning.

Dans ce chapitre, nous allons étudier l'ensemble des éléments qui entrent en jeu dans la formulation d'un problème de machine learning, et essayer de comprendre un peu mieux comment prendre en main cette famille de techniques qui ne sont pas du tout triviales !

Démystifions le machine learning

Lorsqu'on entend parler de machine learning, ou plus généralement de l'intelligence artificielle - dont le machine learning est un sous domaine, on pense généralement à ça :

Terminator, c'est pas pour tout de suite
Terminator... Ce n'est pas vraiment pour tout de suite

Mais les experts du domaine sont formels : malgré toutes les inquiétudes évoquées dans les médias, le machine learning, et de manière plus générale l'intelligence artificielle, ne constituent pas une réelle menace. En l'état actuel, on est vraiment très loin d'avoir atteint un niveau d'intelligence suffisant chez les machines pour avoir de quoi s'inquiéter. Dans tous les cas, les questions éthiques autour du machine learning ne seront pas abordées dans ce cours. 

Le machine learning constitue, comme on l'a vu dans le chapitre précédent, une manière de modéliser des phénomènes, dans le but de prendre des décisions stratégiques.

Avant la modélisation

Comme nous l'avons vu dans la partie précédente, les étapes de travail d'un data scientist sont les suivantes (j'ai entouré en rouge la partie qui nous intéresse dans ce cours) :

Nous ne nous intéresseront dans ces cours qu'à la création des algorithmes et modélisation
Nous ne nous intéresseront dans ce cours qu'à l'utilisation des algorithmes et la modélisation

Un exemple concret

Un data scientist qui travaille dans le web a souvent la possibilité de récupérer les analytics du site pour lequel il travaille (des informations sur les visites et le comportement des utilisateurs sur le site). À partir de ces données brutes, il va sélectionner, nettoyer et transformer les données pertinentes. Par exemple, au lieu de récupérer directement le nombre de visites journalière, il va plutôt récupérer leurs variations d'un jour sur l'autre.

Il va ensuite explorer ces données pré-traitées, c'est à dire visualiser les différentes variables, essayer de comprendre les comportements (les valeurs extrêmes ou aberrantes, les corrélations, etc). Une fois qu'il a une bonne idée de ce à quoi il a affaire, il peut définir une problématique plus précise à laquelle répondre.

Si on garde notre exemple de site internet, le data scientist pourrait par exemple chercher à effectuer un classement des utilisateurs les plus susceptibles de revenir sur le site, ce qui permettrait ensuite de cibler les utilisateurs les plus engagés par des campagnes marketing spécifiques.

Une fois l'exploration faite et la question de recherche définie, le data scientist peut passer à l'étape de modélisation... 

L'étape de modélisation

Imaginez que vous êtes un data scientist. Vous êtes maintenant confortable avec l'ensemble des données récupérées pour vos analyses. Vous avez une connaissance des objectifs principaux de l'entreprise, ce qui vous a aidé à synthétiser les différentes variables qui interviennent, ainsi que visualiser les différents comportements et corrélations présents au sein de ces données. 

Le problème de machine learning constitue l'étape suivante et permet à un ordinateur de modéliser les données qui lui sont fournies. "Modéliser" signifie dans ce cas représenter le comportement d'un phénomène afin de pouvoir directement aider à la résolution d'un problème concret de l'entreprise. Ce problème concret peut par exemple être : identifier des transactions frauduleuses, prédire l'impact d'une campagne marketing sur le taux de conversion, recommander un article personnalisé à un utilisateur, prédire le prix optimal d'un produit pour maximiser le nombre de ventes, etc.

Oui mais pourquoi parle-t-on d'apprentissage ?

En machine learning, l'idée est que l'algorithme construise une "représentation interne" tout seul afin de pouvoir effectuer la tâche qui lui est demandée (prédiction, identification, etc). Pour cela, il va d'abord falloir lui entrer un jeu de données d'exemples afin qu'il puisse s'entraîner et s'améliorer, d'où le mot apprentissage. Ce jeu de données s'appelle le training set. On peut appeler une entrée dans le jeu de données une instance ou une observation

Un exemple de jeu de données classique (appelé CIFAR-10) qui permet d'entraîner un modèle de machine learning
Un exemple de jeu de données classique (appelé CIFAR-10) qui permet d'entraîner un modèle de machine learning. Chaque image constitue une observation du data set  - karpathy.github.io

Nous allons donc être responsable dans une première phase du choix et de l'entraînement de l'algorithme d'apprentissage du modèle, mais le traitement de la tâche spécifique sera appris à partir du training set et ensuite effectué par l'algorithme lui même dans une seconde phase.

Si on prend le schéma ci-dessous, vous pouvez voir les différentes étapes qui interviennent dans l'utilisation d'un algorithme de machine learning.  Nous serons responsable de la phase 1 et on peut ensuite simplement passer les données dans le modèle durant la phase 2.

Un détail de des deux phases du process de machine learning.
Un détail des deux phases du process de machine learning

Comme on peut le voir sur le schéma ci-dessus, un problème d'apprentissage machine comporte ainsi différents éléments spécifiques :

  • Les données (les données d'entraînement mais aussi les nouvelles données)

  • La tâche spécifique à accomplir (prédire, recommander, décider quelque chose, etc.)

  • L'algorithme d'apprentissage en lui-même

  • L'analyse d'erreur (ou mesure des performances du modèle)

Laissez-moi maintenant détailler un peu plus chacun de ces éléments dans les prochaines sections !

Les données

Nous l'avons déjà dit, les données constituent littéralement le nerf de la guerre de la data science. 😉

L'idée est que plus vous aurez une bonne compréhension de vos données, plus vous serez à même de pouvoir les utiliser à bon escient lors de la phase d'entraînement de votre modèle statistique. Nous allons rapidement donner une vue d'ensemble du type de données habituelles rencontrées en machine learning.

Les bases de données

Ça coule de source,  mais les bases de données constituent la source principale de récupération de données par les data scientists.

Il existe pléthore de technologies (de Hadoop à SQL) pour assurer la récupération, le stockage et la robustesse de ces données. Ces bases de données peuvent comprendre différents types d'information, une bonne partie généralement spécifiques à l'activité de l'entreprise.

À titre d'exemple et de manière non-exhaustive : 

  • les logs d'un serveur web

  • le catalogue produit d'un site de e-commerce

  • les transactions bancaires

  • les comportements des utilisateurs d'un site

  • ...

Les données brutes

D'autres données brutes, souvent plus complexes et nécessitant des pré-traitements spécifiques pour les rendre manipulables par les algorithmes, peuvent servir de sources pour un problème de modélisation.

Le texte

Le texte, rédigé en langage naturel (humain), est ainsi une autre source de données principale pour le travail de data scientist. Cela comporte tous les types de texte auxquels on peut penser naturellement (articles, livres, messages, etc), mais aussi d'autres types de textes tels que du code HTML ou encore des séquences d'ADN.

Les images (et vidéos)

Les images sont aussi une des sources de captation de l'environnement souvent utile sur des problématiques d'entreprise. Beaucoup d'entreprises ont des banques d'images à traiter pour les classer par type ou autre.

En traitement des images, les principes de modélisation et d'apprentissage restent sensiblement les même. Il y a cependant un certains nombre de techniques de pré-traitement spécifiques qui permettent d'obtenir des entrées plus simples pour les algor
Un exemple de pré-traitement d'image appelé seuillage, qui permet de simplifier ensuite l'apprentissage d'un modèle statistique (crédits : The MathWorks, Inc.) 
IoT (Internet des objet)

Les objets connectés sont une autre source de données brutes, qui récupèrent un grand nombre de données grâce à leurs capteurs. Un bon exemple est l'entreprise Nest qui a utilisé la data science pour créer un thermostat intelligent qui optimise la consommation d'électricité en surveillant à la fois la température, la présence des habitants, etc.

Un exemple d'objet connecté : le thermostat intelligent de l'entreprise Nest. Source: http://nest.com
Un exemple d'objet connecté : le thermostat intelligent de l'entreprise Nest (crédits : Nest)

La tâche à accomplir

La tâche spécifique à accomplir correspond au problème qu'on cherche à résoudre grâce à la modélisation du phénomène. On peut distinguer un certain nombre de cas qui reviennent souvent dans un environnement business, tels que les recommandations de produits par exemple. Je vous ai aussi déjà cité l'identification de transactions frauduleuses, la prédiction de l'impact d'une campagne marketing sur le taux de conversion, ou la prédiction du prix optimal d'un produit pour maximiser le nombre de ventes.

Chaque tâche se traduira différemment et nécessitera bien sûr le choix d'algorithmes différents. Nous examinerons dans le dernier chapitre de cette partie quelques problématiques courantes et comment elles se traduisent en problèmes de machine learning. 

L'algorithme d'apprentissage

L'algorithme d'apprentissage constitue la méthode avec laquelle le modèle statistique va se paramétrer à partir des données d'exemple. Il existe de nombreux algorithmes différents ! On choisira un type d'algorithme particulier en fonction du type de tâche que l'on souhaite accomplir et du type de données dont on dispose. En gros, quelle est l'entrée de l'algorithme et quelle est la sortie

Quelques exemples d'algorithmes de machine learning, dont vous avez peut-être déjà entendu parler :

  • La régression linéaire

  • K-nn

  • Les Support Vector Machine (SVM)

  • Les réseaux de neurones

  • Les random forests

  • etc.

La mesure des performances

Mesurer les performances fait partie intégrante du travail de modélisation. Il faut en général déterminer une mesure principale, souvent spécifique à la tâche à accomplir. Le choix de cette métrique est très important ! Vous allez comprendre pourquoi avec un petit exemple simple.

Exemple

Imaginez que vous voulez créer un algorithme de détection de fraudes bancaires. Vous voulez mesurer à quel point votre programme est performant. Une manière de faire serait de mesurer la proportion totale de transaction détectées comme fraude. Cependant, on compte ici les transactions qui ne sont pas des fraudes et qui ont quand même été notées comme en étant (appelé "faux positifs"). Donc, avec ce genre de métriques, on est pas exigeant sur ce type d'erreur que produit notre algorithme. Il faut peut être, utiliser une autre métrique plus pertinente. Par exemple, la précision qui est la proportion de "vraies fraudes" détectées par rapport au total de transactions flagées comme fraudes.

On voit donc qu'il faut bien réfléchir à une métrique plus pertinente pour être sûr de mesurer correctement la qualité de mon algorithme.

En résumé

Le machine learning est l'apprentissage d'un modèle statistique par la machine, grâce à des données d'entraînement. Un problème de machine learning comporte plusieurs éléments spécifiques :

  • Des données

  • Une tâche à accomplir

  • Un algorithme d'apprentissage

  • Une mesure des performances

 

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