Kom igångKom igång gratis

Hitta optimalt träddjup

Nu ska du justera parametern max_depth i beslutsträdet för att hitta det värde som minskar överanpassning och samtidigt bibehåller goda prestandamått. Du kör en for-slinga genom flera värden på max_depth, anpassar ett beslutsträd för varje värde och beräknar sedan prestandamått.

Listan depth_list med parameterkandiداterna har redan laddats åt dig. Arrayen depth_tuning har byggts med 2 kolumner, där den första innehåller djupkandidaterna och den andra är en platshållare för recall-score. Dessutom har features och målvariabler laddats som train_X och train_Y för träningsdata, samt test_X och test_Y för testdata. Biblioteken numpy och pandas är laddade som np respektive pd.

Den här övningen är en del av kursen

Maskininlärning för marknadsföring i Python

Visa kurs

Övningsinstruktioner

  • Kör en for-slinga över intervallet från 0 till längden på listan depth_list.
  • Initialisera och anpassa en beslutsträdsklassificerare för varje djupkandidat och prediktera churn på testdata.
  • Beräkna recall-score för varje djupkandidat med hjälp av funktionen recall_score() och lagra resultatet i den andra kolumnen i depth_tunning.
  • Skapa en pandas DataFrame från depth_tuning med lämpliga kolumnnamn.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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=___))
Redigera och kör kod