Выбор модели
Регуляризация и кросс-валидация — мощные инструменты выбора модели. Регуляризация помогает избежать переобучения, а кросс-валидация обеспечивает корректную оценку модели. В этом упражнении вы примените оба метода вместе и проверите, насколько значительно различаются результаты моделей. Вы будете вычислять только точность (precision), хотя аналогичный подход легко применить и для полноты (recall) и других метрик оценки.
X_train, y_train, X_test, y_test доступны в вашем рабочем пространстве. Там же доступны pandas как pd, numpy как np и sklearn. Из sklearn.metrics доступны функции precision_score() и recall_score(), а из sklearn.model_selection — KFold() и 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))