Визначення оптимальної глибини дерева
Тепер ви налаштуєте параметр max_depth дерева рішень, щоб знайти значення, яке зменшує перенавчання й водночас зберігає хороші метрики якості моделі. Ви запустите цикл for для кількох значень max_depth, навчите для кожного дерево рішень, а потім обчислите метрики.
Список кандидатів параметра depth_list уже завантажено для вас. Масив depth_tuning підготовлено з 2 стовпцями: перший заповнено кандидатами глибини, а наступний є місцем для значення recall. Також ознаки та цільові змінні завантажено як train_X, train_Y для тренувальних даних і test_X, test_Y для тестових. Бібліотеки numpy та pandas завантажено як np і pd відповідно.
Ця вправа є частиною курсу
Machine Learning для маркетингу в Python
Інструкції до вправи
- Запустіть цикл
forпо діапазону від 0 до довжини спискуdepth_list. - Для кожного кандидата глибини ініціалізуйте та навчіть класифікатор дерева рішень і спрогнозуйте відтік на тестових даних.
- Для кожного кандидата глибини обчисліть значення recall за допомогою функції
recall_score()і збережіть його в другому стовпціdepth_tunning. - Створіть датафрейм
pandasзdepth_tuningз відповідними назвами стовпців.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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=___))