Data Science ML

Как работает GridSearchCV

GridSearchCV – это метод подбора гиперпараметров из библиотеки Scikit Learn. Импорт метода:

from sklearn.model_selection import train_test_split, GridSearchCV

Порядок работы алгоритма подбора

Разбиение данных на фолды

Это деление всех строк данных на равные части. Если параметр cv=3, значит, данные делятся на 3 равные части.

Обучение на выбранных гиперпараметрах

Далее идет обучение выбранной модели на фолдах с чередованием. Простой пример:

Допустим, у нас есть три фолда и мы подбираем значение только одного гиперпараметра (например, Learning Rate) со значениями 0.01, 0.05, 0.1.

Итерация 1

  • Learning Rate = 0.01.
  • Обучаем на фолдах 1 и 2.
  • Тестируем на фолде 3 и оцениваем метрику качества.

Итерация 2

  • Learning Rate = 0.01.
  • Обучаем на фолдах 1 и 3.
  • Тестируем на фолде 2 и оцениваем метрику качества.

Итерация 3

  • Learning Rate = 0.01.
  • Обучаем на фолдах 2 и 3.
  • Тестируем на фолде 1 и оцениваем метрику качества.

После этого выполняется усреднение метрики качества для данного значения гиперпараметра. Затем используем следующее значение Learning Rate = 0.05 и повторяем обучение на фолдах (снова выполняем три итерации). И так далее, пока не переберем все значения гиперпараметра.

Если гиперпараметров несколько, происходит обучение на всех их возможных комбинациях аналогичным образом.

Переобучение финальной модели на всех данных

По итогам обучения выбирается лучшая комбинация гиперпараметров (с наилучшей метрикой качества) и на них обучается модель с использованием всех данных.

Атрибут best_estimator_ содержит финальную обученную модель. В нее можно отдать новые тестовые данные и посмотреть в деле.

best_model = grid_search.best_estimator_

y_pred = best_model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)

print(f"Test MSE: {mse:.4f}")

Атрибут best_params_ содержит массив лучших гиперпараметров со значениями. Например:

{'learning_rate': 0.1, 'max_depth': 7, 'n_estimators': 500, 'num_leaves': 31}

Вставить формулу как
Блок
Строка
Дополнительные настройки
Цвет формулы
Цвет текста
#333333
Используйте LaTeX для набора формулы
Предпросмотр
\({}\)
Формула не набрана
Вставить