Statistiche della cross-validation
Hai usato la grid search con CV per ottimizzare il tuo classificatore random forest e ora vuoi ispezionare i risultati della cross-validation per assicurarti di non aver fatto overfitting. In particolare, vuoi calcolare la differenza tra la media del punteggio sul test per ciascun fold e la media del punteggio sul training. Il dataset è disponibile come X_train e y_train, la pipeline come pipe, e diversi moduli sono già caricati, inclusi pandas come pd e GridSearchCV().
Questo esercizio fa parte del corso
Progettare workflow di Machine Learning in Python
Istruzioni dell'esercizio
- Crea un oggetto di grid search con tre fold di cross-validation e assicurati che restituisca sia le statistiche di training sia quelle di test.
- Adestra l’oggetto di grid search sui dati di training.
- Salva i risultati della cross-validation, disponibili nell’attributo
cv_results_dell’oggetto CV addestrato, in un dataframe. - Stampa la differenza tra la colonna che contiene la media dei punteggi sul test e quella che contiene la media dei punteggi sul training.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Fit your pipeline using GridSearchCV with three folds
grid_search = GridSearchCV(
pipe, params, ____=3, return_train_score=____)
# Fit the grid search
gs = grid_search.____(____, ____)
# Store the results of CV into a pandas dataframe
results = pd.____(gs.____)
# Print the difference between mean test and training scores
print(
results[____]-results['mean_train_score'])