Pendant le développement d'un modèle, on se retrouve souvent dans une situation où, quoi qu'on essaie, la performance ne bouge presque pas :

  • Le feature engineering n'apporte qu'un gain marginal.

  • Changer de modèle ne donne pas non plus de résultats satisfaisants.

  • Et bien d'autres signes encore…

LE SYMPTÔME
Ton modèle manque peut-être de données

C'est généralement (mais pas toujours) le signe que ton modèle manque de données. Autrement dit, tu n'as pas assez de matière pour travailler.

Un bonhomme pensif se demande s'il manque de données, à côté de l'icône d'un modèle et de la mention « Faible performance du modèle ».

Seulement, collecter de nouvelles données peut être long et fastidieux.

Avant de te lancer dans cette direction, mieux vaut donc savoir si de nouvelles données vont vraiment aider.

Voici une astuce que j'utilise souvent pour le déterminer.

LA MÉTHODE
Découpe tes données, puis entraîne en cumulant

Imaginons que voici ton training set et ton validation set complets :

Deux cadres côte à côte : le training set complet et le validation set.

Divise le training set en « k » parties égales. Le validation set reste tel quel.

Le training set complet est découpé en « k » sous-ensembles numérotés de 1 à 7, le validation set reste à part.

« k » n'a pas besoin d'être très grand : une valeur entre 7 et 12 convient, selon la quantité de données dont tu disposes. Si tu as beaucoup de données, mieux vaut choisir une valeur basse dans cette fourchette (tu vas comprendre pourquoi dans un instant).

Ensuite, entraîne des modèles de façon cumulative sur ces sous-ensembles et mesure leur performance sur le validation set :

Sept modèles A à G entraînés sur 1, puis 1 à 2, jusqu'à 1 à 7 sous-ensembles du training set. Tous sont évalués sur le même validation set.
  • Entraîne un modèle sur le premier sous-ensemble et évalue-le sur le validation set.

  • Entraîne un modèle sur les deux premiers sous-ensembles et évalue-le sur le validation set.

  • Entraîne un modèle sur les trois premiers sous-ensembles et évalue-le sur le validation set.

  • Et ainsi de suite…

LA COURBE
Courbe A ou courbe B : que te dit-elle ?

Trace la performance de validation de ces modèles, par ordre de taille croissante du training set : c'est ce qu'on appelle une courbe d'apprentissage (learning curve). Tu obtiendras probablement l'un de ces deux types de courbes :

Deux courbes de performance sur le validation set pour les modèles A à G : la courbe A continue de monter, la courbe B atteint un plateau.
  • La courbe A indique qu'ajouter des données a de bonnes chances d'améliorer le modèle.

  • La courbe B indique que la performance a déjà atteint un plateau. Ajouter des données ne donnera très probablement aucun gain notable.

Tu comprends peut-être mieux ce que je disais plus haut : « si tu as beaucoup de données, mieux vaut choisir une valeur basse de k ».

Comme tu entraînes un modèle par sous-ensemble cumulé, une valeur élevée de « k » multiplie les entraînements, et chacun coûte cher quand le training set est volumineux.

Tu peux ainsi déterminer si ton modèle manque de données, et si en collecter sera utile ou non.

Simple et efficace, non ?

❝

À retenir : si la performance de validation continue de monter avec la taille du training set, plus de données aideront ; si elle plafonne, il y a peu de chances que ça serve.

En plus de cette technique, je présente 11 autres techniques très utiles pour améliorer tes modèles ML dans le mini-cours « Booste tes modèles ML sans changer d'algorithme », en deux parties.

Envie d'aller plus loin ? DataXp t'attend : formations et parcours pour progresser en data science, machine learning et IA.

👉 Et maintenant, à toi de jouer : Si tu obtiens la courbe B, que ferais-tu ensuite pour faire progresser ton modèle ?

Commentaires

Avatar

ou participer

À lire ensuite

Des shots dans la même veine, à lire entre deux tâches.

Voir tous les shots
caret-right