Itérer sans surapprentissage

Concevoir des workflows de Machine Learning en Python

Dr. Chris Anagnostopoulos

Honorary Associate Professor

Schéma montrant qu'un pipeline de machine learning peut encore être ajusté après son passage en production.

Concevoir des workflows de Machine Learning en Python

Dans le même schéma, on indique que davantage de données peuvent être extraites de la production pour affiner le modèle.

Concevoir des workflows de Machine Learning en Python

Dans le même schéma, on montre que des experts métier peuvent apporter de nouvelles idées qui modifient le modèle, comme de nouvelles fonctions de perte.

Concevoir des workflows de Machine Learning en Python

Dans le même schéma, le modèle déployé en production est le « champion », et celui en développement le « challenger ».

Concevoir des workflows de Machine Learning en Python

Résultats de la validation croisée

grid_search = GridSearchCV(pipe, params, cv=3, return_train_score=True)
gs = grid_search.fit(X_train, y_train)
results = pd.DataFrame(gs.cv_results_)
results[['mean_train_score', 'std_train_score', 
   'mean_test_score', 'std_test_score']]
   mean_train_score  std_train_score  mean_test_score  std_test_score
0             0.829            0.006            0.735           0.009
1             0.829            0.006            0.725           0.009
2             0.961            0.008            0.716           0.019
3             0.981            0.005            0.749           0.024
...
Concevoir des workflows de Machine Learning en Python

Résultats de la validation croisée

   mean_train_score  std_train_score  mean_test_score  std_test_score
0             0.829            0.006            0.735           0.009
1             0.829            0.006            0.725           0.009
2             0.961            0.008            0.716           0.019
3             0.981            0.005            0.749           0.024
4             0.986            0.003            0.728           0.009
5             0.995            0.002            0.751           0.008

Observations :

  • Score d'entraînement bien supérieur au score de test.
  • L'écart-type du score de test est important.
Concevoir des workflows de Machine Learning en Python

Jeu de données scindé en entraînement et test, avec l'entraînement découpé en plis pour la validation croisée.

Concevoir des workflows de Machine Learning en Python

Jeu de données scindé en entraînement et validation, avec l'entraînement découpé en plis pour la validation croisée.

Concevoir des workflows de Machine Learning en Python

Détecter le surapprentissage

  • Score CV entraînement >> Score CV test
    • surapprentissage lors de l'ajustement du modèle
    • réduire la complexité du classifieur
    • obtenir plus de données d'entraînement
    • augmenter le nombre de plis CV
  • Score CV test >> Score de validation
    • surapprentissage lors du réglage des hyperparamètres
    • diminuer le nombre de plis CV
    • réduire la taille de la grille de paramètres

Jeu de données scindé en entraînement et validation, avec l'entraînement découpé en plis pour la validation croisée.

Concevoir des workflows de Machine Learning en Python

Jeu de données scindé en entraînement et validation, avec l'entraînement découpé en plis pour la validation croisée.

Concevoir des workflows de Machine Learning en Python

Jeu de données scindé en entraînement, validation et production, avec l'entraînement découpé en plis pour la validation croisée.

Concevoir des workflows de Machine Learning en Python

« Expert en CV » dans votre CV !

Concevoir des workflows de Machine Learning en Python

Preparing Video For Download...