Иногда значения по умолчанию не соответствуют вашему варианту использования.

Зачем отслеживать пользовательскую функцию оценки?

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

  • тренируйтесь, используя некоторую стандартную функцию потерь, такую ​​как потеря L2
  • выберите свои гиперпараметры (например, n_estimators ) на основе наилучшего показателя перекрестной проверки в соответствии с вашей пользовательской метрикой оценки.

как нам это сделать?

Вам нужно определить функцию, которая принимает в качестве аргументов:

  • прогнозы вашей модели
  • истинные метки вашего набора данных

и который возвращает:

  • ваше пользовательское имя потери
  • значение вашего пользовательского убытка, оцененное с помощью входных данных
  • хотите ли вы максимизировать или минимизировать вашу пользовательскую метрику

Если это непонятно, не волнуйтесь, мы скоро увидим пример (def neg_correlation).

Давайте посмотрим пример!

Здесь я обучаю LightGBM на наборе данных breast_cancer из sklearn и выбираю n_estimators в зависимости от того, какой из них обеспечивает лучший отрицательный коэффициент корреляции.

Где я могу найти это в документах?

Описание можно найти здесь: https://lightgbm.readthedocs.io/en/latest/pythonapi/lightgbm.LGBMRegressor.html#lightgbm.LGBMRegressor.fit

Однако примера нет. Я надеюсь, что этот пример сэкономит вам время, если вам нужно понять, как это сделать самостоятельно.

Заключение

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