Сейчас в моду входит алгоритм LightGBM, появляются статьи а ля Which algorithm takes the crown: Light GBM vs XGBOOST?. В задаче говорится о том, что LightGBM дал на одинаковых данных прогноз чуть лучше, чем XGBoost, но зато по времени LightGBM работает гораздо быстрее, чем XGBoost
Плюс настраиваю сетку
XGBoost также отработал более 6 часов, метрика -0.28208288404701737
LightGBM Wall time: 3h 34min 35s, метрика -0.28217897475881154
В качестве метрики была MAE - y измеряется в логарифмированных рублях, поэтому различие практически никакое. А вот время работы да, отличается сильно.
И логика экономии времени понятна: LightGBM обходится меньшим количеством деревьев - n_estimators
Ну как результаты?) Вполне себе согласуются с тем, что написал индус в своем посте по ссылке выше. Я не стал пока дальше сетку копать, у меня датасет объемный. Плюс надо еще разбираться с гиперпараметрами LightGBM. Обязательно отпишусь, когда полностью настрою модель.
На Каггле LightGBM во многих задачах стал обходить XGBoost.
Я решил проверить на своих данных. Алгоритм моей услуги - прогноз зарплаты Сколько я стою на рынке - построен на XGBoost. Сегодня на том же датасете я запустил оба алгоритма.
Для XGBoost
xgb = XGBRegressor( nthread=4, seed=1234567890)Для LightGBM
gbm = lgb.LGBMRegressor(objective='regression', nthread=4, seed=1)Далее параметры для обоих алгоритмов одинаковые
param1 = { 'model_fitting__learning_rate': [ 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 1], 'model_fitting__n_estimators': [ 100, 150, 200, 250, 300, 350, 400, 450, 500, 550] }
cv = ShuffleSplit(n_splits=6, test_size=0.25, random_state=678901) score = 'neg_mean_absolute_error'
gsearch1 = GridSearchCV(pipeline, param1 , scoring= score,iid=False, cv=cv)
Результаты
XGBoost работал более 5 часов({'model_fitting__learning_rate': 0.03, 'model_fitting__n_estimators': 500}, -0.30208288404701737)LightGBM работал в два раза быстрее Wall time: 2h 42min 59s
({'model_fitting__learning_rate': 0.03, 'model_fitting__n_estimators': 200}, -0.30150633397192345)
* Вставка 26.06.
Я проверил данные также на похожем датасете.XGBoost также отработал более 6 часов, метрика -0.28208288404701737
LightGBM Wall time: 3h 34min 35s, метрика -0.28217897475881154
В качестве метрики была MAE - y измеряется в логарифмированных рублях, поэтому различие практически никакое. А вот время работы да, отличается сильно.
И логика экономии времени понятна: LightGBM обходится меньшим количеством деревьев - n_estimators
Ну как результаты?) Вполне себе согласуются с тем, что написал индус в своем посте по ссылке выше. Я не стал пока дальше сетку копать, у меня датасет объемный. Плюс надо еще разбираться с гиперпараметрами LightGBM. Обязательно отпишусь, когда полностью настрою модель.
Полезные ссылки про LightGBM
Про установку пакета не буду писать, а вот для работы с пакетом мне самыми полезными показались две ссылки- LightGBM в sklearn - я ленивый, работаю в sklearn обертке, мне такой вариант наиболее подходящий для работы с пакетом и настройки сетки grid
- Source code for lightgbm.sklearn - а этот пост помогает понять, какие гипрепараметры настраивать. Тут много вкусного, с чем можно поиграться.
Комментариев нет:
Отправить комментарий