Sélection de modèle
La régularisation et la validation croisée sont deux outils puissants pour la sélection de modèle. La régularisation aide à éviter le surapprentissage, et la validation croisée garantit que vos modèles sont évalués correctement. Dans cet exercice, vous combinerez régularisation et validation croisée pour voir si les modèles diffèrent de façon significative. Vous calculerez uniquement la précision, même si le même exercice peut facilement s'appliquer au rappel et à d'autres mesures d'évaluation.
X_train, y_train, X_test, y_test sont disponibles dans votre espace de travail. pandas sous pd, numpy sous np, et sklearn sont aussi disponibles. Les fonctions precision_score() et recall_score() de sklearn.metrics sont disponibles, ainsi que KFold() et cross_val_score() de sklearn.model_selection.
Cette activité fait partie du cours
Prédire le CTR avec le Machine Learning en Python
Instructions de l’exercice
- Configurez une validation croisée K-Fold avec quatre divisions à l'aide de
n_splitset assignez-la àk-fold. - Créez un classificateur par arbre de décision.
- Utilisez
k_foldpour exécuter la validation croisée et évaluer la précision et le rappel de votre modèle d'arbre de décision pour la valeurmax_depthdonnée.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Iterate over different levels of max depth and set up k-fold
for max_depth_val in [3, 5, 10]:
k_fold = ____(____ = 4, random_state = 0, shuffle = True)
clf = ____(____ = max_depth_val)
print("Evaluating Decision Tree for max_depth = %s" %(max_depth_val))
y_pred = clf.fit(____, ____).predict(____)
# Calculate precision for cross validation and test
cv_precision = ____(
____, X_train, y_train, cv = k_fold, scoring = 'precision_weighted')
precision = ____(y_test, y_pred, average = 'weighted')
print("Cross validation Precision: %s" %(cv_precision))
print("Test Precision: %s" %(precision))