LightGBM - sklearnAPI против API обучения и структуры данных и lgb.cv против gridsearchcv/randomisedsearchcv

  1. Каковы различия между sklearnAPI(LGBMModel, LGBMClassifier и т. Д.) И API по умолчанию (lgb.Dataset, lgb.cv, lgb.train) из lightgbm? Какой из них я предпочитаю использовать?

  2. Лучше ли использовать lgb.cv или gridsearchcv/randomisedsearchcv из sklearn при использовании lightgbm?

1 ответ

Решение
  1. Этот ответ был хорошо освещен здесь
  2. Основанный на этом блокноте Уиллом Кёрсеном API-интерфейс перекрестной проверки sklearn не включает возможность ранней остановки. Поэтому, если вы хотите использовать ранние этапы остановки (что может быть очень полезно, если вы хотите прекратить тренировку, когда показатель проверки не улучшился для заданного числа оценщиков), лучше использовать перекрестную проверку LightGBM (lgb.cv) функция.

    Кроме того, выдержка из ответа Михаила Лисёви - "Технически, lightbgm.cv() позволяет оценивать производительность только при k-кратном расщеплении с фиксированными параметрами модели. Для настройки гиперпараметров вам нужно будет запустить его в цикле, обеспечивающем разные параметры и перекодирование усредненной производительности для выбора наилучшего набора параметров. после завершения цикла. Этот интерфейс отличается от sklearn, который предоставляет вам полную функциональность для оптимизации гиперпараметров в цикле CV. Лично я бы рекомендовал использовать sklearn-API lightgbm. Это просто оболочка для встроенной функциональности lightgbm.train(), поэтому она не медленнее. Но она позволяет вам использовать полный набор инструментов sklearn, что делает вашу жизнь НАМНОГО проще ".

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

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