Cet article n’a pas pour vocation d’être un tutoriel sur le machine learning mais plutot un memento pratique sur cette discipline.
Index
Les phases d’un projet de ML (Machine learning)
Une projet de ML se déroule en plusieurs grandes phases distinctes successives
- Récupération des données
- Préparation des données
- Apprentissage (Choix du modèle, entrainement et ajustement du modèle)
- Tests
- 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 ligne | Ici 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 :
Typologie | Supervisé ou/et Non Supervisé | Description |
Régression | Supervisé | 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. |
Classification | Supervisé / 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). |
Clustering | Non 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. |
Ce tableau a pour but de récapituler quelques uns des algorithmes de ML les plus couramment utilisés :
Algorithme | Apprentissage | Typologie | Commentaires |
Regression Linéaire
(univariée / multivariée) | Supervisé | Régression | C’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 polynomiale | Supervisé | Régression | C’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ée | Supervisé | Régression | L’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é | Classification | C’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 logistique | Supervisé | Régression | C’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.
|
K-NN (K plus proches voisins) | Supervisé | Classification | Algorithme basé sur la proximité des observations. |
Random forest | Supervisé
Non Supervisé | Classification | Rapide, 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é | Classification | De 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.
Ingénieur en informatique avec plus de 20 ans d’expérience dans la gestion et l’utilisation de données, Benoit CAYLA a mis son expertise au profit de projets très variés tels que l’intégration, la gouvernance, l’analyse, l’IA, la mise en place de MDM ou de solution PIM pour le compte de diverses entreprises spécialisées dans la donnée (dont IBM, Informatica et Tableau). Ces riches expériences l’ont naturellement conduit à intervenir dans des projets de plus grande envergure autour de la gestion et de la valorisation des données, et ce principalement dans des secteurs d’activités tels que l’industrie, la grande distribution, l’assurance et la finance. Également, passionné d’IA (Machine Learning, NLP et Deep Learning), l’auteur a rejoint Blue Prism en 2019 et travaille aujourd’hui en tant qu’expert data/IA et processus. Son sens pédagogique ainsi que son expertise l’ont aussi amené à animer un blog en français (datacorner.fr) ayant pour but de montrer comment comprendre, analyser et utiliser ses données le plus simplement possible.
One Reply to “Le Machine learning – Memento”