Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Uruchom pętlę for iterującą po zakresie od 0 do długości listy depth_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 tablicy depth_tunning.
  • Utwórz ramkę danych pandas z tablicy depth_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=___))
Edytuj i uruchom kod