НачатьНачать бесплатно

Определение оптимальной глубины дерева

Теперь вам предстоит настроить параметр max_depth дерева решений, чтобы найти значение, которое снижает переобучение и при этом сохраняет хорошие метрики качества модели. Вы выполните цикл for по нескольким значениям параметра max_depth, для каждого из них обучите дерево решений и рассчитаете метрики качества.

Список depth_list с кандидатами для параметра уже загружен. Массив depth_tuning подготовлен заранее: он содержит 2 столбца — в первом записаны значения глубины, второй служит местом для хранения значений полноты (recall). Признаки и целевые переменные загружены как train_X, train_Y для обучающей выборки и test_X, test_Y для тестовой. Библиотеки numpy и pandas загружены как np и pd соответственно.

Это упражнение является частью курса

Машинное обучение для маркетинга на Python

Посмотреть курс

Инструкции к упражнению

  • Запустите цикл for по диапазону от 0 до длины списка depth_list.
  • Для каждого значения глубины инициализируйте и обучите классификатор на основе дерева решений, а затем предскажите отток на тестовых данных.
  • Для каждого значения глубины рассчитайте полноту (recall) с помощью функции recall_score() и сохраните результат во втором столбце массива depth_tunning.
  • Создайте объект pandas DataFrame из массива 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=___))
Редактировать и запускать код