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

Выбор модели

Регуляризация и кросс-валидация — мощные инструменты выбора модели. Регуляризация помогает избежать переобучения, а кросс-валидация обеспечивает корректную оценку модели. В этом упражнении вы примените оба метода вместе и проверите, насколько значительно различаются результаты моделей. Вы будете вычислять только точность (precision), хотя аналогичный подход легко применить и для полноты (recall) и других метрик оценки.

X_train, y_train, X_test, y_test доступны в вашем рабочем пространстве. Там же доступны pandas как pd, numpy как np и sklearn. Из sklearn.metrics доступны функции precision_score() и recall_score(), а из sklearn.model_selectionKFold() и cross_val_score().

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

Прогнозирование CTR с помощью машинного обучения на Python

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

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

  • Настройте K-кратную кросс-валидацию с четырьмя разбиениями, используя параметр n_splits, и присвойте результат переменной k-fold.
  • Создайте классификатор на основе дерева решений.
  • Используйте k_fold для запуска кросс-валидации и оценки точности (precision) и полноты (recall) вашей модели дерева решений для заданного значения max_depth.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Iterate over different levels of max depth and set up k-fold
for max_depth_val in [3, 5, 10]:
  k_fold = ____(____ = 4, random_state = 0, shuffle = True)
  clf = ____(____ = max_depth_val)
  print("Evaluating Decision Tree for max_depth = %s" %(max_depth_val))
  y_pred = clf.fit(____, ____).predict(____) 
  
  # Calculate precision for cross validation and test
  cv_precision = ____(
    ____, X_train, y_train, cv = k_fold, scoring = 'precision_weighted')
  precision = ____(y_test, y_pred, average = 'weighted')
  print("Cross validation Precision: %s" %(cv_precision))
  print("Test Precision: %s" %(precision))
Редактировать и запускать код