Aller au contenu

Les étapes du workflow ML


L'intelligence artificielle n'est plus un mythe, elle est devenue une réalité. Les machines sont capables d'affectuer des tâches initialement réservées aux humains et cela est possible grâce à l'apprentissage, c'est tout l'objet du machine learning. Dans cette formation, je vous propose de découvrir les notions fondamentales du machine learning et la librairie Scikit-learn de l'INRIA.

I. Collecte des données

Le carburant qui fait tourner la machine

Les données sont essentielles et nécessaires à la résolution d’un problème avec les techniques de machine learning. Ces données peuvent être déjà existantes ou non. Si vous n'avez pas les données à disposition alors il faudra les collecter. Sans quoi, les techniques de machine learning ne seront d’aucune utilité.

PAS DE DONNÉES, PAS DE MACHINE LEARNING

Où trouver les données ?

Les données peuvent provenir de sources différentes:

  1. Bases de données de l’entreprise
  2. Les archives
  3. En ligne sur Internet
  4. Colleter sur le terrain
  5. Commander un sondage
  6. Acheter les données auprès de sociétés spécialisés

Il faut en collecter le plus possible.

II. Nettoyage

Les données collectées ne sont presque jamais exploitables en l'état. Il peut s'agir d'erreurs ou de différence de format ou d'unités par exemple. Dans tous les cas, un peu de ménage est nécessaire.

Voici quelques opérations de nettoyage:

  • Uniformiser les unités (des tailles exprimées en mètre ou en centimètres)
  • Gérer les données manquantes
  • Supprimer les données dupliquées
  • Enlever les unités et garder les nombres (10Kg - 10)

À la fin de cette opération, les données doivent être cohérentes et plus ou moins exploitables.

III. Exploration

L'objectif est de regarder de plus près les données dont on dispose et de s’assurer de la bonne qualité des données. Ce travail d’exploration permettra de découvrir les éventuelles aberrations dans les données.

  • La distribution de la variable objectif
  • La distribution des variables explicatives (différentes échelles de grandeur)
  • Les corrélations entre les variables

Quelles sont les variables les plus pertinentes ?

Distribution des variables explicatives

Le jeu de données est déséquilibré, les données malignes sont plus présentes.

Il faudra en tenir lors de l’échantillonnage.

Attention, ce déséquilibre peut être non conforme à la réalité.

Distribution des variables explicatives

Les variables n'ont pas la même échelle de grandeur.

Dans la suite, il faudra les ramener toutes les variable à une échelle commune.

Corrélation entre les variables

Il ne sert à rien de garder des variables corrélées entre elles. Elles apportent la même information.

area et perimeter sont les variables les plus corrélées. On peut envisager de garder q'une seule pour la modélisation.

Les variables les plus pertinentes

Avec les variables area et smoothness, on a une bonne dispersion entre les différentes classes.

Nous allons travailler avec uniquement ces deux variables dans un premier temps.

IV. Pré-traitement ou Transformation

Conversion en valeurs numériques

Les algorithmes de machine learning ne consomment que des chiffres et des nombres, il est donc nécessaire de convertir les valeurs non numériques (catégorielles) en numérique.

Dans notre exemple, M est encodé en 1 et B en 0.

Normalisation des données

L'objectif de cette opération est de ramener toutes les variables à une échelle commune. Voici deux manières de procéder

  • Normalisation (min, max)
  • Standardisation (Centrage et Réduction)

Les variables ont désormais la même échelle de grandeur.

La normalisation accélère la convergence de la méthode d’optimisation d’où l’intérêt de normaliser les données. D’une part il faut plusieurs étapes pour atteindre le minimum et d’autre part en quelques itérations le minimum est atteint.

V. Échantillonnage

Toutes les données ne vont pas servir à entraîner le modèle. Il faut procéder à un échantillonnage. En général, 80% ou 70% des données servent à estimer le modèle, ensuite les 20% ou 30% à l’évaluer afin de s’assurer que le modèle généralise correctement.

Il faut s’assurer que l’on garde la même distribution des classes dans les différentes partitions du jeu de données. Si la classe A représente 45% des données alors dans les partitions on doit avoir à peu près 45% de A.

VI. Modélisation ou Entraînement

Un modèle est une fonction mathématique ou un ensemble de règles permettant d’attribuer une étiquette à une donnée nouvelle.

Ensemble de règles permettant d’attribuer une étiquette à une donnée. Il existe des modèles:

  • paramétriques
  • non-paramétriques (KNN)

Généralement, lors de la phase d'entraînement, on estime les valeurs de ces paramètres qui donnent les meilleures prédictions. En résumé le modèle permettra de prédire le diagnostic du patient.

VII. Évaluation

Le but de l'évaluation est de s'assurer que le modèle généralise bien.

On dit qu’un modèle généralise bien si ses prédictions sur les données de test sont aussi bonnes que celles sur le jeu d’entraînement.

Surapprentissage Sous-apprentissage
Bonnes prédictions sur les données d'entraînement Mauvaises prédictions sur les données d'entraînement
Mauvaises prédictions sur les données de test Mauvaises prédictions sur les données de test

Comment sélectionner le modèle final ?

Après avoir essayé différentes approches, il faut à présent choisir la meilleure.

Ce choix se fait suivant un critère ou un score:

  • Le taux de bonnes prédictions,
  • La précision,
  • La valeur de la fonction de coût...

Pour un problème de classification, le taux de bonnes prédictions est un bon critère. Mais attention si certaines sont surreprésentées.

Validation croisée

Tester différentes valeurs des hyperparamètres et sélectionner la combinaison qui donne les meilleurs résultats.

  1. Partitionner le jeu de données
  2. Entraîner le modèle avec les différentes combinaisons
  3. Évaluer le modèle
  4. Sélectionner la combinaison qui obtient le meilleur résultat moyen

VIII. Déploiement

Maintenant qu’on est satisfait des résultats de l'évaluation, on peut mettre le modèle en production, c’est bien l’objectif final du projet.

  • Le modèle est exporté avec pickle
  • Le modèles est exposé via une API (Flask ou FastAPI)
  • Allez plus loin avec un interface web (Gradio)

Références

IX. Maintenance ou Monitoring

Il s'agit de suivre le comportement du modèle en production.


Partagez sur les réseaux sociaux

Commentaires