Wyznaczanie optymalnej głębokości drzewa
Teraz dostrojysz parametr max_depth drzewa decyzyjnego, aby znaleźć wartość, która ogranicza przeuczenie przy jednoczesnym zachowaniu dobrej jakości modelu. Uruchomisz pętlę for iterującą po różnych wartościach parametru max_depth, dopasowując dla każdej z nich drzewo decyzyjne, a następnie obliczysz metryki jakości.
Lista depth_list z kandydatami na wartości parametru jest już wczytana. Tablica depth_tuning została przygotowana z 2 kolumnami: pierwsza zawiera kandydujące głębokości, a druga jest miejscem na wartości recall. Zmienne opisujące cechy i zmienną docelową są dostępne jako train_X, train_Y dla danych treningowych oraz test_X, test_Y dla danych testowych. Biblioteki numpy i pandas są wczytane odpowiednio jako np i pd.
To ćwiczenie jest częścią kursu
Uczenie maszynowe w marketingu w Pythonie
Instrukcje do ćwiczenia
- Uruchom pętlę
foriterującą po zakresie od 0 do długości listydepth_list. - Dla każdego kandydata na głębokość zainicjuj i dopasuj klasyfikator drzewa decyzyjnego, a następnie przewidź odpływ klientów na danych testowych.
- Dla każdego kandydata na głębokość oblicz wartość recall za pomocą funkcji
recall_score()i zapisz ją w drugiej kolumnie tablicydepth_tunning. - Utwórz ramkę danych
pandasz tablicydepth_tuning, nadając kolumnom odpowiednie nazwy.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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=___))