Selezione del modello
Sia la regolarizzazione sia la cross validation sono strumenti potenti per la selezione del modello. La regolarizzazione aiuta a prevenire l'overfitting e la cross validation assicura che i tuoi modelli vengano valutati correttamente. In questo esercizio userai insieme regolarizzazione e cross validation per verificare se i modelli differiscono in modo significativo. Calcolerai solo la precision, anche se lo stesso procedimento si può applicare facilmente alla recall e ad altre metriche di valutazione.
X_train, y_train, X_test, y_test sono disponibili nel tuo workspace. pandas come pd, numpy come np e sklearn sono anch'essi disponibili. Sono disponibili sia precision_score() sia recall_score() da sklearn.metrics, così come KFold() e cross_val_score() da sklearn.model_selection.
Questo esercizio fa parte del corso
Prevedere il CTR con il Machine Learning in Python
Istruzioni dell'esercizio
- Imposta una cross validation K-Fold con quattro suddivisioni usando
n_splitse assegnala ak-fold. - Crea un classificatore ad albero decisionale.
- Usa
k_foldper eseguire la cross validation e valutare precision e recall del tuo modello ad albero decisionale per il valore dimax_depthfornito.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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))