Cross-Validation-Statistiken
Du hast Grid-Search-CV verwendet, um deinen Random-Forest-Klassifikator zu tunen, und möchtest nun die Cross-Validation-Ergebnisse prüfen, um sicherzugehen, dass du nicht überfitten hast. Konkret möchtest du für jeden Fold die Differenz zwischen dem mittleren Test-Score und dem mittleren Trainings-Score berechnen. Der Datensatz liegt als X_train und y_train vor, die Pipeline als pipe, und mehrere Module sind bereits geladen, darunter pandas als pd und GridSearchCV().
Diese Übung ist Teil des Kurses
Machine-Learning-Workflows in Python entwerfen
Anleitung zur Übung
- Erzeuge ein Grid-Search-Objekt mit drei Cross-Validation-Folds und stelle sicher, dass es sowohl Trainings- als auch Teststatistiken zurückgibt.
- Fitte das Grid-Search-Objekt auf die Trainingsdaten.
- Speichere die Ergebnisse der Cross-Validation, verfügbar im Attribut
cv_results_des trainierten CV-Objekts, in einem DataFrame. - Gib die Differenz zwischen der Spalte mit dem durchschnittlichen Test-Score und der mit dem durchschnittlichen Trainings-Score aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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'])