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
Övningsinstruktioner
- Kör en
for-slinga över intervallet från 0 till längden på listandepth_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 idepth_tunning. - Skapa en
pandasDataFrame fråndepth_tuningmed 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=___))