Налаштування гіперпараметрів

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

Yauhen Babakhin

Kaggle Grandmaster

Ітерації

Модель Валід. RMSE Публічний LB RMSE Позиція на публічному LB
Просте середнє 9.986 9.409 1449 / 1500
Групове середнє 9.978 9.407 1411 / 1500
Gradient Boosting 5.996 4.595 1109 / 1500
Додати ознаку години 5.553 4.352 1068 / 1500
Додати ознаку відстані 5.268 4.103 1006 / 1500
... ... ... ...
Як перемагати в змаганнях Kaggle за допомогою Python

Ітерації

Модель Валід. RMSE Публічний LB RMSE Позиція на публічному LB
Просте середнє 9.986 9.409 1449 / 1500
Групове середнє 9.978
Gradient Boosting 5.996 4.595 1109 / 1500
Додати ознаку години 5.553
Додати ознаку відстані 5.268 4.103 1006 / 1500
... ... ... ...
Як перемагати в змаганнях Kaggle за допомогою Python

Оптимізація гіперпараметрів

 

Тип змагання Інженерія ознак Оптимізація гіперпараметрів
Класичне машинне навчання +++ +
Глибоке навчання - +++
Як перемагати в змаганнях Kaggle за допомогою Python

Регресія Ріджа

 

Лінійна регресія методом найменших квадратів

$$Loss = \sum_{i=1}^{N}{(y_i - \hat{y}_i)^2} \to \min$$

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

Регресія Ріджа

 

Лінійна регресія методом найменших квадратів

$$Loss = \sum_{i=1}^{N}{(y_i - \hat{y}_i)^2} \to \min$$

Регресія Ріджа

$$Loss = \sum_{i=1}^{N}{(y_i - \hat{y}_i)^2 + \alpha\sum_{j=1}^{K}{{w_j}^2}} \to \min$$

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

Стратегії оптимізації гіперпараметрів

 

  • Grid search. Оберіть наперед задану сітку значень гіперпараметрів
  • Random search. Визначте простір пошуку значень гіперпараметрів
  • Баєсівська оптимізація. Визначте простір пошуку значень гіперпараметрів

схема grid search

схема random search

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

Grid search

# Можливі значення alpha
alpha_grid = [0.01, 0.1, 1, 10]

from sklearn.linear_model import Ridge results = {} # Для кожного значення в сітці for candidate_alpha in alpha_grid:
# Створіть модель з конкретним значенням alpha ridge_regression = Ridge(alpha=candidate_alpha)
# Знайдіть валідаційний бал для цієї моделі
# Збережіть результати для кожного значення alpha results[candidate_alpha] = validation_score
Як перемагати в змаганнях Kaggle за допомогою Python

Давайте потренуємось!

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

Preparing Video For Download...