Cross validation
La cross validation è una tecnica che verifica le prestazioni del modello sul set di holdout. Serve a garantire che le prestazioni in fase di test non dipendano da problemi specifici nel modo in cui i dati sono stati suddivisi. In questo esercizio userai le implementazioni di sklearn per eseguire una K-fold cross validation usando il modulo KFold() per valutare precision e recall per un albero di decisione.
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 nel tuo workspace. KFold() e cross_val_score() da sklearn.model_selection sono entrambi disponibili.
Questo esercizio fa parte del corso
Prevedere il CTR con il Machine Learning in Python
Istruzioni dell'esercizio
- Crea un classificatore ad albero di decisione.
- Imposta una K-Fold cross validation con quattro suddivisioni e assegnala a
k-fold. - Usa
k_foldper eseguire la cross validation concross_val_score()per valutare la precision e la recall del tuo modello (e non usarerecall_score()oprecision_score()!).
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Create model
clf = ____
# Set up k-fold
k_fold = ____(n_splits = 4, random_state = 0, shuffle = True)
# Evaluate precision and recall for each fold
precision = ____(
clf, X_train, ____, cv = ____, scoring = 'precision_weighted')
recall = ____(
clf, X_train, ____, cv = ____, scoring = 'recall_weighted')
print("Precision scores: %s" %(precision))
print("Recall scores: %s" %(recall))