Основные принципы улучшения вашей модели

Тюнинг модели - это способ перезарядить модель для повышения ее производительности. Давайте рассмотрим пример, в котором проводится сравнение ненастроенной модели XGBoost и настроенной модели XGBoost на основе их оценки RMSE. Позже вы узнаете об описании гиперпараметров в XGBoost.

Ниже приведен пример кода для ненастроенных параметров в модели XGBoost:

Вывод: 34624.229980

Теперь давайте посмотрим на значение RMSE при некоторой настройке параметров:

Вывод: 29812.683594

Видно, что после настройки параметров оценка RMSE снизилась примерно на 15%.

Гиперпараметры XGBoost

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

Настраиваемые параметры Common Tree

  • скорость обучения: влияет на то, насколько быстро модель соответствует остаточной ошибке с использованием дополнительных базовых учащихся. Низкая скорость обучения потребует большего количества раундов повышения для достижения такого же снижения остаточной ошибки, как и модель XGBoost с высокой скоростью обучения. Обозначается она.
  • гамма: это минимальное сокращение потерь для создания нового разбиения на дерево. Чтобы сделать алгоритм более консервативным, предпочтительнее высокое значение гаммы.
  • лямбда: отвечает за регуляризацию L2 на весах листьев.
  • альфа: отвечает за регуляризацию L1 весов листьев.
  • max_depth: это положительное целое число, оно отвечает за то, насколько глубоко каждое дерево будет расти во время любого раунда повышения.
  • sub_sample: Он находится в диапазоне от 0 до 1 и представляет собой долю от общего обучающего набора, которую можно использовать для любого данного раунда повышения. Низкое значение этого параметра может привести к проблемам с подбором, а высокие значения могут привести к переобучению.
  • colsample_bytree: этот параметр также находится в диапазоне от 0 до 1. Это доля функций, которые могут быть выбраны во время любых раундов повышения.

Линейно настраиваемые параметры

  • лямбда: отвечает за регуляризацию L2 на весах листьев.
  • альфа: отвечает за регуляризацию L1 весов листьев.
  • lambda_bias: термин регуляризации L2, который можно применить к смещению модели.

Ниже приведены некоторые примеры настройки:

НАСТРОЙКА ETA

Вывод:

Видно, что увеличение значения eta дает лучшую модель.

НАСТРОЙКА MAX_DEPTH

Вывод:

Видно, что увеличение значения глубины дерева дает лучшую модель.

Модели будут работать лучше только тогда, когда значения гиперпараметров будут оптимальными. Итак, вопрос в том, как найти оптимальное значение, чтобы получить минимально возможный убыток?

Двумя распространенными стратегиями одновременного выбора нескольких гиперпараметров являются Поиск по сетке и Случайный поиск.

Итак, давайте посмотрим, как их можно использовать в XGBoost?

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

Это метод исчерпывающего поиска в коллекции возможных значений параметров. Например, если вам нужно настроить 3 гиперпараметра, каждый из которых имеет 4 возможных значения, тогда поиск по сетке в этом пространстве параметров будет пробовать все 64 конфигурации и выбирать конфигурацию, которая дает наилучшее значение для используемых метрик (здесь мы использовали root среднеквадратичная ошибка). Давайте посмотрим на пример.

Результат: Лучший параметр: {‘Learning_rate’: 0,1, ‘n_estimators’: 200, ‘subsample’: 0,5} Наименьшее RMSE: 28530,1829341

Случайный поиск

Он несколько отличается от поиска по сетке. Он создает диапазон значений гиперпараметров для каждого гиперпараметра, по которому вы хотите выполнить поиск. Он также устанавливает количество итераций для продолжения случайного поиска. Во время каждой итерации выполняется поиск случайным образом отображаемого значения в диапазоне заданных значений для каждого гиперпараметра и обучения / тестирования модели с этими гиперпараметрами. После достижения максимального количества итераций он выбирает лучшие гиперпараметры с лучшими оценками.

Результат: лучший параметр: {‘learning_rate’: 20000000000000001, ‘n_estimators’: 200, ‘подвыборка’: 6.0000000000000009} Наименьшее RMSE: 28300.2374291

eta best_rmse
0 0,001 195736.406250
1 0,010 179932.192708
2 0,100 79759.414063

Вывод

Итак, теперь вы знаете, что такое тюнинг и как он помогает улучшить модель. В этой статье обсуждалась настройка гиперпараметров eta и max-depth, но могут быть и другие гиперпараметры, которые могут быть настроены на лучшее значение и могут повысить производительность вашей модели, а выбор лучших значений может быть выполнен с помощью поиска по сетке. и случайный поиск.

Если вы хотите узнать больше о настройке гиперпараметров в целом, воспользуйтесь следующей ссылкой: https://neptune.ai/blog/hyperparameter-tuning-in-python-a-complete-guide-2020