Aan de slagGa gratis aan de slag

Bepaal de optimale boomdiepte

Nu ga je de parameter max_depth van de decision tree afstemmen om te ontdekken welke overfitting vermindert en toch goede modelprestatie-metrics behoudt. Je voert een for-lus uit over meerdere waarden voor max_depth, traint voor elk een decision tree en berekent vervolgens de prestatiecijfers.

De lijst depth_list met kandidaatwaarden is al voor je geladen. De array depth_tuning is voor je opgebouwd met 2 kolommen: de eerste is gevuld met de diepte-kandidaten en de tweede is een placeholder voor de recall-score. Ook zijn de features en doelvariabelen geladen als train_X, train_Y voor de trainingsdata en test_X, test_Y voor de testdata. Beide bibliotheken numpy en pandas zijn geladen als respectievelijk np en pd.

Deze oefening maakt deel uit van de cursus

Machine Learning voor marketing in Python

Cursus bekijken

Oefeninstructies

  • Voer een for-lus uit over het bereik van 0 tot de lengte van de lijst depth_list.
  • Initialiseer en train voor elke diepte-kandidaat een decision tree-classifier en voorspel churn op de testdata.
  • Bereken voor elke diepte-kandidaat de recall-score met de functie recall_score() en sla die op in de tweede kolom van depth_tunning.
  • Maak een pandas DataFrame van depth_tuning met de juiste kolomnamen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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 bewerken en uitvoeren