LoslegenKostenlos loslegen

Optimale Baumtiefe bestimmen

Jetzt stimmst du den Parameter max_depth des Decision Trees ab, um diejenige Tiefe zu finden, die Overfitting reduziert und gleichzeitig gute Modellmetriken beibehält. Du führst eine for-Schleife über mehrere max_depth-Werte aus, passt für jeden einen Decision Tree an und berechnest anschließend die Leistungsmetriken.

Die Liste depth_list mit den Kandidatenwerten ist bereits geladen. Das Array depth_tuning wurde für dich mit 2 Spalten erstellt: Die erste ist mit den Tiefen-Kandidaten gefüllt, die zweite ist ein Platzhalter für den Recall-Score. Außerdem sind die Features und Zielvariablen als train_X, train_Y für die Trainingsdaten sowie test_X, test_Y für die Testdaten geladen. Die Bibliotheken numpy und pandas sind als np bzw. pd importiert.

Diese Übung ist Teil des Kurses

Machine Learning für Marketing mit Python

Kurs anzeigen

Anleitung zur Übung

  • Führe eine for-Schleife über den Bereich von 0 bis zur Länge der Liste depth_list aus.
  • Initialisiere für jeden Tiefen-Kandidaten einen Decision-Tree-Klassifikator, trainiere ihn und sage Churn auf den Testdaten voraus.
  • Berechne für jeden Tiefen-Kandidaten den Recall-Score mit der Funktion recall_score() und speichere ihn in der zweiten Spalte von depth_tunning.
  • Erzeuge aus depth_tuning ein pandas DataFrame mit passenden Spaltennamen.

Interaktive Übung

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

# Run a for loop over the range of depth list length
for index in ___(0, len(depth_list)):
  # Initialize and fit decision tree with the `max_depth` candidate
  mytree = DecisionTreeClassifier(___=depth_list[index])
  mytree.fit(___, train_Y)
  # Predict churn on the testing data
  pred_test_Y = mytree.predict(___)
  # Calculate the recall score 
  depth_tuning[index,1] = ___(test_Y, ___)

# Name the columns and print the array as pandas DataFrame
col_names = ['Max_Depth','Recall']
print(pd.DataFrame(depth_tuning, columns=___))
Code bearbeiten und ausführen