Validation croisée avec sklearn
Comme expliqué au chapitre 2, le surapprentissage du jeu de données est un problème courant en analytique. Il survient lorsqu’un modèle apprend trop fidèlement les données : il obtient d’excellentes performances sur le jeu d’entraînement, mais généralise mal en dehors de celui-ci.
Bien que la technique de séparation entraînement/test que vous avez vue au chapitre 2 évite le surapprentissage sur l’ensemble d’entraînement, l’optimisation des hyperparamètres peut conduire à surajuster la partie test, puisqu’elle consiste à ajuster le modèle pour obtenir les meilleurs résultats prédictifs sur l’ensemble de test. Il est donc recommandé de valider le modèle sur différents jeux de test. La validation croisée en k folds permet précisément cela :
- elle découpe le jeu de données en un ensemble d’entraînement et un ensemble de test ;
- elle entraîne le modèle, effectue des prédictions et calcule un score (vous pouvez préciser si vous souhaitez l’accuracy, la précision, le rappel, etc.) ;
- elle répète le processus k fois au total ;
- elle renvoie la moyenne des 10 scores.
Dans cet exercice, vous allez appliquer la validation croisée sur notre jeu de données et évaluer les résultats avec la fonction cross_val_score.
Cet exercice fait partie du cours
Analytique RH : prédire l’attrition des employés en Python
Instructions
- Importez la fonction qui permet d’effectuer une validation croisée,
cross_val_score(), depuis le modulesklearn.model_selection. - Affichez le score de validation croisée de votre modèle en spécifiant 10 folds avec l’hyperparamètre
cv.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Import the function for implementing cross validation
from sklearn.model_selection import ____
# Use that function to print the cross validation score for 10 folds
print(____(model,features,target,____=10))