LoslegenKostenlos loslegen

Modellauswahl

Sowohl Regularisierung als auch Cross-Validation sind leistungsstarke Werkzeuge für die Modellauswahl. Regularisierung kann Overfitting verhindern, und Cross-Validation stellt sicher, dass deine Modelle korrekt bewertet werden. In dieser Übung verwendest du Regularisierung und Cross-Validation gemeinsam und prüfst, ob sich Modelle signifikant unterscheiden. Du berechnest nur die Precision, wobei sich die gleiche Übung leicht auch für Recall und andere Bewertungsmetriken durchführen lässt.

X_train, y_train, X_test, y_test sind in deiner Arbeitsumgebung verfügbar. pandas als pd, numpy als np und sklearn stehen dir ebenfalls zur Verfügung. Sowohl precision_score() als auch recall_score() aus sklearn.metrics sowie KFold() und cross_val_score() aus sklearn.model_selection sind verfügbar.

Diese Übung ist Teil des Kurses

CTR-Vorhersage mit Machine Learning in Python

Kurs anzeigen

Anleitung zur Übung

  • Richte eine K-Fold-Cross-Validation mit vier Splits über n_splits ein und weise sie k-fold zu.
  • Erstelle einen Decision-Tree-Klassifikator.
  • Verwende k_fold, um die Cross-Validation auszuführen und die Precision und den Recall deines Decision-Tree-Modells für den gegebenen max_depth-Wert zu bewerten.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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))
Code bearbeiten und ausführen