Эффективное использование структуры оптимизации гиперпараметров без переобучения - проблемы регуляризации

Я использую XGBOOST с RandomGridSearchCV и GridSearchCV с приличным успехом.

Мои обучающие данные состоят из примерно 100 тыс. Строк, 58 столбцов, половина из которых являются категориальными табличными данными, и я выдвинул 20 тыс. Строк для тестовых данных.

Со всей работой, которую я вложил, я хотел еще немного упростить процесс, поэтому я использовал Optuna.

С Gridsearch я использовал значения по умолчанию для Lambda(1.0) и gamma (0) и смог достичь 0,86 MAE на тестовых данных. (Ранняя остановка достигается примерно на 4000 итераций)

Я позволил Optuna выбрать многие из моих параметров, включая max_depth, lambda, gamma, colsample(s), я просто сохранил LR стабильным на уровне.003, а num_boost_rounds на 100 и альфа по умолчанию, используя xgb.cv с 5 кратностями.

Я подумал, что со всеми строками и перекрестной проверкой будет трудно переборщить.

Теперь каждый раз Optuna будет выбирать Lambda 0 и Alpha 0, а также большое количество max_depth, что, как я считаю, переоценивает данные поезда.

Результаты тестов с Optuna и без регуляризации: 0,93 (против 0,86 с использованием GridSearch)

Теперь кажется, что процесс настройки регуляризации - чрезвычайно сложный процесс.

Мне пришлось бы самому установить гамму и лямбду (и даже альфа), а затем позволить Optuna (или даже поиску по сетке в этом отношении) найти лучшие параметры и НАДЕЖДА, что моя регуляризация, которую я сам установил, не является чрезмерной или недостаточной, а затем вручную попробовать куча комбинаций для большей регуляризации.

Итак, что должно быть первым? Остается ли регуляризация стабильной при любой скорости обучения? Должен ли я просто оставить все настройки по умолчанию? Стоит ли мне смотреть на графики, сравнивающие поезд и проверку, и просто смотреть на это? Должен ли я просто настраивать регуляризацию для небольшого подмножества моих данных, например, для 10 тыс. Строк? Или, возможно, изменить num_boost_rounds со 100 на 4000, на котором я раньше остановился с помощью поиска по сетке (это займет вечность)?

0 ответов

Другие вопросы по тегам