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 une évaluation correcte de vos modèles. Dans cet exercice, vous allez combiner régularisation et validation croisée pour voir si les modèles diffèrent de manière significative. Vous calculerez uniquement la précision, mais le même exercice peut facilement être réalisé pour le rappel et d’autres métriques 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 également disponibles. precision_score() et recall_score() de sklearn.metrics sont disponibles, ainsi que KFold() et cross_val_score() de sklearn.model_selection.
Cet exercice fait partie du cours
Prédire le CTR avec le Machine Learning en Python
Instructions
- Configurez une validation croisée K-Fold avec quatre partitions à l’aide de
n_splitset assignez-la àk-fold. - Créez un classificateur d’arbre de décision.
- Utilisez
k_foldpour exécuter la validation croisée et évaluez la précision et le rappel de votre modèle d’arbre de décision pour la valeur demax_depthfournie.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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))