Подбор гиперпараметров

Победа в соревновании Kaggle на Python

Yauhen Babakhin

Kaggle Grandmaster

Итерации

Модель Validation RMSE Public LB RMSE Позиция в Public 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

Итерации

Модель Validation RMSE Public LB RMSE Позиция в Public 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

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

 

  • Поиск по сетке. Задаётся фиксированная сетка значений гиперпараметров
  • Случайный поиск. Задаётся пространство поиска значений гиперпараметров
  • Байесовская оптимизация. Задаётся пространство поиска значений гиперпараметров

схема поиска по сетке

схема случайного поиска

Победа в соревновании Kaggle на Python

Поиск по сетке

# Possible alpha values
alpha_grid = [0.01, 0.1, 1, 10]

from sklearn.linear_model import Ridge results = {} # For each value in the grid for candidate_alpha in alpha_grid:
# Create a model with a specific alpha value ridge_regression = Ridge(alpha=candidate_alpha)
# Find the validation score for this model
# Save the results for each alpha value results[candidate_alpha] = validation_score
Победа в соревновании Kaggle на Python

Давайте потренируемся!

Победа в соревновании Kaggle на Python

Preparing Video For Download...