Вибір моделі
Регуляризація та перехресна перевірка — потужні інструменти для вибору моделі. Регуляризація допомагає запобігати перенавчанню, а перехресна перевірка гарантує коректну оцінку ваших моделей. У цій вправі ви поєднаєте регуляризацію та перехресну перевірку й перевірите, чи відрізняються моделі істотно. Ви обчислите лише точність (precision), хоча аналогічно можна оцінити повноту (recall) та інші метрики.
X_train, y_train, X_test, y_test доступні у вашому робочому середовищі. pandas як pd, numpy як np та sklearn також доступні. Доступні precision_score() і recall_score() з sklearn.metrics, а також KFold() і cross_val_score() з sklearn.model_selection.
Ця вправа є частиною курсу
Прогнозування CTR за допомогою машинного навчання в Python
Інструкції до вправи
- Налаштуйте перехресну перевірку K-Fold із чотирма розбиттями за допомогою
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))