ПочатиПочніть безкоштовно

Дослідження перенавчання XGBoost

Після тренування 3 моделей XGBoost із різною максимальною глибиною ви оціните їхню якість. Для цього виміряйте якість кожної моделі як на тренувальних даних, так і на тестових. Як ви вже знаєте, тренувальні дані — це дані, на яких моделі навчалися. Тестові дані — це дані про продажі за наступний місяць, яких моделі раніше не бачили.

Мета цієї вправи — визначити, чи є серед натренованих моделей така, що перенавчається. Для вимірювання якості моделей ви використаєте середньоквадратичну помилку (MSE). Вона доступна в sklearn.metrics як функція mean_squared_error(), що приймає два аргументи: істинні значення та передбачені значення.

Датафрейми train і test разом із 3 натренованими моделями (xg_depth_2, xg_depth_8, xg_depth_15) доступні у вашому середовищі.

Ця вправа є частиною курсу

Як перемагати в змаганнях Kaggle за допомогою Python

Переглянути курс

Інструкції до вправи

  • Зробіть передбачення для кожної моделі як на тренувальних, так і на тестових даних.
  • Обчисліть MSE між істинними значеннями та вашими передбаченнями як для тренувальних, так і для тестових даних.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

from sklearn.metrics import mean_squared_error

dtrain = xgb.DMatrix(data=train[['store', 'item']])
dtest = xgb.DMatrix(data=test[['store', 'item']])

# For each of 3 trained models
for model in [xg_depth_2, xg_depth_8, xg_depth_15]:
    # Make predictions
    train_pred = model.____(dtrain)     
    test_pred = model.____(dtest)          
    
    # Calculate metrics
    mse_train = ____(train['sales'], train_pred)                  
    mse_test = ____(test['sales'], test_pred)
    print('MSE Train: {:.3f}. MSE Test: {:.3f}'.format(mse_train, mse_test))
Редагувати та запускати код