Ранний отказ от Пикарета? Переоснащение с помощью Catboost и XGBoost

Я сравниваю производительность Catboost, XGBoost и LinearRegression в Pycaret. Catboost и XGBoost не настроены.

Пока я вижу, что Catboost и XGBoost переоснащаются.

Для линейной регрессии поезд / тестовый результат - поезд R2: 0,72, тест R2: 0,65

Есть ли способ установить "Раннюю остановку" для XGBoost и Catboost, чтобы избежать этого переоборудования? Или есть другие параметры, которые нужно настроить в Pycaret, чтобы избежать переобучения?

2 ответа

Решение

Существует больше возможностей, как избежать переобучения.

  • Выбор функции (не может быть настроен в настройке) - есть два типа и переменный порог ИЛИ RFE (рекурсивное исключение функции) или SHAP
  • настроить оба - Catboost, XGBoost (или другие древовидные алгоритмы)
  • увеличьте n_estimators=100 или 500, или 1000
  • запустить алгоритмы несколько раз
  • изменить выборку 80/20, 70/30 и т. д.
  • удалить коррелированные входные данные

Во-первых, как вы сравниваете модели без настройки гиперпараметров? Было бы полезно увидеть ваш код.

В pycaret есть параметр ранней остановки, но я не уверен, что он делает. Это также доступно только для tune_modelфункция. Если вы разрешите pycaret автоматически искать гиперпараметры для xgboost и catboost, они больше не должны соответствовать. Это связано с тем, что они будут настраивать гиперпараметр регуляризации (регуляризации L1 и / или L2 на весах листьев) и будут сравнивать оценки по наборам проверки.

С помощью catboost (или xgboost или lightgbm) вы можете установить параметр для включения ранней остановки:

      import catboost

cb = catboost.CatBoostClassifier(n_estimators=1000)
cb.fit(x_train, y_train, eval_set=(x_test, y_test), early_stopping_rounds=10, plot=True)

Вам необходимо предоставить eval_setВ противном случае ему нечего будет оценивать для ранней остановки. Я не думаю, что на данный момент возможно добавить early_stopping_rounds в качестве параметра любой из соответствующих функций pycaret, которые вы, вероятно, используете.

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