Itérer sans surajuster

Concevoir des flux de travail Machine Learning en Python

Dr. Chris Anagnostopoulos

Honorary Associate Professor

Schéma montrant qu'un pipeline de Machine Learning peut être encore peaufiné après son déploiement en production.

Concevoir des flux de travail Machine Learning en Python

Dans le même schéma, on indique que plus de données peuvent être extraites de la production pour améliorer l'ajustement du modèle.

Concevoir des flux de travail Machine Learning en Python

Dans le même schéma, des experts du domaine apportent de nouvelles idées pouvant modifier le modèle, p. ex. de nouvelles fonctions de perte.

Concevoir des flux de travail 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 est le challenger.

Concevoir des flux de travail 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 flux de travail 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 beaucoup plus élevé que le score de test.
  • L'écart type du score de test est élevé.
Concevoir des flux de travail Machine Learning en Python

Un ensemble de données scindé en entraînement et test ; l'entraînement est ensuite découpé par validation croisée.

Concevoir des flux de travail Machine Learning en Python

Un ensemble de données scindé en entraînement et validation ; l'entraînement est ensuite découpé par validation croisée.

Concevoir des flux de travail Machine Learning en Python

Détecter le surajustement

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

Un ensemble de données scindé en entraînement et validation ; l'entraînement est ensuite découpé par validation croisée.

Concevoir des flux de travail Machine Learning en Python

Un ensemble de données scindé en entraînement et validation ; l'entraînement est ensuite découpé par validation croisée.

Concevoir des flux de travail Machine Learning en Python

Un ensemble de données scindé en entraînement, validation et données de production ; l'entraînement est ensuite découpé par validation croisée.

Concevoir des flux de travail Machine Learning en Python

« Expert(e) de la CV » dans votre CV !

Concevoir des flux de travail Machine Learning en Python

Preparing Video For Download...