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
Anleitung zur Übung
- Richte eine K-Fold-Cross-Validation mit vier Splits über
n_splitsein und weise siek-foldzu. - 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 gegebenenmax_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))