IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Imposta una cross validation K-Fold con quattro suddivisioni usando n_splits e assegnala a k-fold.
  • Crea un classificatore ad albero decisionale.
  • Usa k_fold per eseguire la cross validation e valutare precision e recall del tuo modello ad albero decisionale per il valore di max_depth fornito.

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))
Modifica ed esegui il codice