Le Machine learning – Memento

Cet article n’a pas pour vocation d’être un tutoriel sur le machine learning mais plutot un memento pratique sur cette discipline.

Les phases d’un projet de ML (Machine learning)

Une projet de ML se déroule en plusieurs grandes phases distinctes successives

  1. Récupération des données
  2. Préparation des données
  3. Apprentissage (Choix du modèle, entrainement et ajustement du modèle)
  4. Tests
  5. Prédiction(s)

Si ces phases doivent être effectuées de manière distinctes, en réalité on sera plus dans une approche itérative. Par exemple un ajustement de modèle n’étant possible que si de nouvelles carractéristiques sont ajoutées, il faudra donc revenir dans la phase 1 et 2 afin de rajouter ces nouvelles variables. De même il sera intéressant dans certains cas de figure de tester de nouveaux algorithmes afin de tester la pertinence et le niveau d’erreur de notre modèle.

Par contre il est une règle immuable en ML: Il faut absolument que les données d’apprentissage soient différentes de celles de tests (et donc aussi de production). Pour simplifier, si on vous donne un jeu de données vous devez le diviser en deux (apprentissage et tests) et surtout ne jamais jouer je jeu de test pendant la phase d’apprentissage !

Les typologies

On trouve plusieurs grandes familles d’apprentissage :

L’apprentissage superviséDans ce cas de figure vous avez collecté des données avec toutes les carractéristiques (variables du modèle) et étiquettes (résultats). Vous avez donc en main les variables ainsi que les résultats dans vos données d’apprentissage.
L’apprentissage non-superviséDans ce cas ci vous n’avez que les carractéristiques. Vous ne connaissez pas les résutats des données d’apprentissage. C’est donc a votre modèle d’apprendre … mais tout seul !
L’apprentissage semi-superviséDans ce cas de figure vous n’avez pas toutes les étiquettes (résultats) mais seulement certaines. Votre modèle va donc devoir apprendre avec des trous !
L’apprentissage groupé
C’est un mode d’apprentissage particulier où le modèle ne peut apprendre progressivement. Il doit ingérer toutes les données disponibles à chaque fois ! ce qui le rend plus lourd à utiliser.
L’apprentissage en ligneIci le modèle st entraîné progressivement, au fil de l’eau (soit par observation, soit par petits groupes d’observations)

De manière plus globale on distinguera :

  • L’apprentissage à partir d’observations plus basique et qui implique que le système apprenne les données d’apprentissage puis compare par similarité les nouvelles données/observations avec celles apprises.
  • L’apprentissage par modèle (qui nous interresse ici): dans laquelle on va essayer de construire un modèle qui généralise les observations constatées. l’idée est de trouver par rapport aux observations quelles sont les liens mathématiques entre les carractéristiques (et étiquettes).

Les algorithmes

Tout d’abord on distingue 3 grandes typologies d’algorithmes :

TypologieSupervisé ou/et Non SuperviséDescription
RégressionSuperviséC’est le basique des modèles prédictifs. L’idée est, à partir de données existantes de déduire la droite/courbe qui relie ces points. Par extension (une droite/courbe étant infinie) il est ainsi possible de déterminer de nouvelles valeurs.
ClassificationSupervisé / Non SuperviséL’objectif de ce type d’algorithme n’est pas de prédire une valeur exacte (comme un montant ou un résultat précis) mais de classifier les données dans des groupes. Les classes peuvent être binaires (oui/non) ou multi-valeurs (connues ou non).
ClusteringNon Supervisé / SuperviséL’idée du clustering est de créer des groupes d’observations (en gros de regouper les observations qui sont les plus similaires). On trouve plusieurs approches:

 

Le clustering hiérarchique (ascendant/agglomératif ou descendant/divisif) pour constituer des arbres par groupe progressif.
Le clustering non-hiérarchique: L’idée est aussi de constituer des arbres de décision mais cette fois ci on connait le nombre de groupe (cluster) à constituer.
L’approche mixte.

Ce tableau a pour but de récapituler quelques uns des algorithmes de ML les plus couramment utilisés :

AlgorithmeApprentissageTypologieCommentaires
Regression Linéaire

 

(univariée / multivariée)

SuperviséRégressionC’est le mode le plus courant et le plus simple du ML. L’idée ici est de faire deviner au modèle l’équation qui permettra les prédictions ultérieure. Le mode univarié n’a qu’une variable (carractéristiques), c’est donc une simple droite (y=ax+b) quant au mode multivarié il prend en compte plusieurs autre carractéristiques (attention a la normalisation des variables).
Regression polynomialeSuperviséRégressionC’est une extension particulière de la régression multivariée. Pour faire simple l’idée est d’avoir une courbe plutôt qu’une droite 😉 (on n’est donc plus dans la linéarité)
Regression régulariséeSuperviséRégressionL’idée ici est d’améliorer les modèles de regression en y ajoutant des notions de rétressissements (shrink)/pénalités afin de réduire l’espace et donc retirer les erreurs grossières du modèle. C’est clairement une méthode de régularisation.

 

Fonctions de pénalisation : Regression Ridge, Lasso, ElasticNet

Naives Bayes SuperviséClassificationC’est un classifieur. Certainement le plus utilisé il repose sur la loi de probabilité de Bayes. Sa particularité : il repose sur le fait que les carractéristiques sont indépendantes entres elles.
Regression logistiqueSupervisé RégressionC’est un classifieur très répendu et très utilisé du fait de son coté linéaire. Sa fonction de coût est basée sur le log Loss qui pénalise fortement les faux positifs & négatifs.

 

Retrouvez un exemple d’utilisation ici.

K-NN (K plus proches voisins)SuperviséClassificationAlgorithme basé sur la proximité des observations.
Random forestSupervisé

 

Non Supervisé

ClassificationRapide, robuste et parallélisable. L’idée est d’entrainer plusieurs arbres de décision sur des sous-ensembles aléatoires et différents de votre jeu de données. Au final un vote démocratique des vos différents groupes vous donne la prédiction.
SVM (Support View Machine) Supervisé

 

Non Supervisé

ClassificationDe type regression ou classification. Très adapté à la classification de données complexes mais de tailles réduites.

Il y en a bien d’autre évidemment, aussi je tâcherai de mettre à jour ce tableau régulièrement.

Si vous chercher plus la manière d’aborder un projet de machine learning, n’hésitez pas à lire cet article.

Partager cet article

One Reply to “Le Machine learning – Memento”

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.