Nalezení optimální hloubky stromu
Teď doladíš parametr max_depth rozhodovacího stromu, abys našel/a takovou hodnotu, která omezí přeučení a zároveň zachová dobré výkonnostní metriky modelu. Pomocí cyklu for projdeš několik hodnot parametru max_depth, pro každou natrénuješ rozhodovací strom a vypočítáš výkonnostní metriky.
Seznam depth_list s kandidáty parametru je připravený. Pole depth_tuning je předpřipraveno se 2 sloupci – první obsahuje kandidáty hloubky, druhý slouží jako místo pro recall skóre. Příznaky a cílové proměnné jsou načteny jako train_X, train_Y pro trénovací data a test_X, test_Y pro testovací data. Knihovny numpy a pandas jsou dostupné pod zkratkami np a pd.
Toto cvičení je součástí kurzu
Machine Learning for Marketing in Python
Pokyny k cvičení
- Spusť cyklus
forpřes rozsah od 0 do délky seznamudepth_list. - Pro každého kandidáta hloubky inicializuj a natrénuj klasifikátor rozhodovacího stromu a předpověz odchod zákazníků na testovacích datech.
- Pro každého kandidáta hloubky vypočítej recall skóre pomocí funkce
recall_score()a ulož ho do druhého sloupce poledepth_tunning. - Vytvoř
pandasDataFrame z poledepth_tunings odpovídajícími názvy sloupců.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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=___))