Я использую 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 на уровне 0,003 и num_boost_rounds до 100 и по умолчанию альфа, используя xgb.cv с 5 сгибами.
Я решил со всеми строками и перекрестной проверкой, что будет трудно переопределить.
Теперь каждый раз, Optuna выберет Lambda 0 и Alpha 0, а также большое число max_depth , которое, как я считаю, переопределяет данные поезда.
Результаты тестов с Optuna и без регуляризации: .93 (против .86 используя GridSearch)
Теперь кажется, что процесс настройки регуляризации является чрезвычайно сложным процессом.
Мне бы пришлось самому установить гамму и лямбду (и даже альфа), а затем позволить Оптуне (или даже gridsearch в этом отношении) найдите лучшие параметры и НАДЕЖДА, что моя регуляризация, которую я установил сам, не закончена или не соответствует , затем вручную попробуйте несколько комбинаций для большего количества регуляризация.
Итак, что должно быть на первом месте? Сохраняется ли регуляризация при любой скорости обучения? Должен ли я просто оставить все регуляризации настройки по умолчанию? Должен ли я смотреть на графики, сравнивающие поезд и проверку, и просто смотреть на это? Должен ли я просто настраивать регуляризацию на небольшом подмножестве моих данных, например на 10 тыс. Строк? Или, возможно, изменить num_boost_rounds со 100 на 4000, на которых я раньше остановился с поиском по сетке (это заняло бы вечность)?