Установка стоимости ложных срабатываний намного выше, чем стоимость ложных срабатываний в LightGBM

#python-3.x #loss-function #lightgbm #imbalanced-data

#python-3.x #потеря-функция #lightgbm #несбалансированные данные

Вопрос:

Я столкнулся с ситуацией, когда ложные срабатывания намного дороже, чем ложные негативы.

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

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

Так что в этом случае ложный положительный результат стоит намного дороже, чем ложный отрицательный, по крайней мере, для вас.

Итак, каким-то образом я хотел бы сообщить модели, что FP намного хуже, чем FNs.

Я провел некоторое исследование в Stack Overflow, и они предлагают два решения:

  1. Играйте с порогом при преобразовании вероятностей в классы (это не влияет на обучение)
  2. Увеличьте вес отрицательного класса (это влияет на обучение и форму границы принятия решения).

Предполагается, что, увеличивая вес отрицательного класса, вы отговариваете модель от совершения ошибки, когда дело доходит до отрицательных примеров, т. Е. Неправильно классифицируя их как положительные.

Напротив, модель будет менее склонна ошибаться в сторону положительных примеров, ошибочно классифицируя их как отрицательные.

Но когда положительный класс составляет небольшую долю от общих данных — например, 3% — такая передискретизация отрицательного класса, скорее всего, приведет к тому, что классификатор всегда выберет отрицательный класс, ситуация типа Catch22.

Что бы вы посоветовали?

Комментарии:

1. Выберите правильную метрику для обучения вашей модели. Потому что у вас несбалансированные данные auc или f1 могут сделать. Выберите пороговое значение, которое максимизирует полезность ваших прогнозов.