Иногда значения по умолчанию не соответствуют вашему варианту использования.
Зачем отслеживать пользовательскую функцию оценки?
Иногда вы работаете с очень индивидуальной оценочной метрикой, которую нельзя использовать в качестве функции потерь. Итак, вы можете:
- тренируйтесь, используя некоторую стандартную функцию потерь, такую как потеря 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. Это полезно, когда у вас есть задача с необычной оценочной метрикой, которую вы не можете использовать в качестве функции потерь. Теперь идите и обучите модель, используя настраиваемую метрику оценки!