У меня есть модель логистической регрессии (подходит через glmnet в R с упорядоченной упругой сетью), и я хотел бы максимизировать разницу между истинными положительными и ложными положительными сторонами. Для этого на ум пришла следующая процедура:
- Подходит стандартная модель логистической регрессии
- Используя порог прогноза как 0,5, определите все положительные прогнозы
- Назначьте вес 1 для положительно предсказанных наблюдений, 0 для всех остальных
- Подходящая модель взвешенной логистической регрессии
Каковы были бы недостатки этого подхода? Каков будет правильный путь для решения этой проблемы?
Причина желания увеличить разницу между количеством истинных положительных и ложных отрицательных результатов связана с дизайном моего приложения. Как часть классного проекта, я создаю автономного участника на онлайн-рынке - если моя модель предсказывает, что она может что-то купить и продать позже по более высокой цене, она делает ставку. Я хотел бы придерживаться логистической регрессии и выводить двоичные результаты (выигрывать, проигрывать) на основе фиксированных затрат и приращений цены за единицу (я получаю или теряю одинаковую сумму при каждой транзакции). Ложный позитив вредит мне, потому что это означает, что я что-то покупаю и не могу продать за более высокую цену. Тем не менее, ложный минус не повредит мне (только с точки зрения альтернативных издержек), потому что это просто означает, что если я не куплю, но если бы я сделал, я бы заработал деньги. По аналогии,
Я согласен с тем, что порог 0,5 абсолютно произвольный, и когда я оптимизировал модель, начиная с шага 1, на пороге прогнозирования, который дает наибольшую разницу между истинным / ложным положительным результатом, он оказывается ближе к 0,4. Я думаю, что это связано с искаженным характером моих данных - соотношение между негативами и позитивами составляет около 1: 3.
Прямо сейчас я выполняю следующие шаги:
- Разделение данных на обучение / тестирование
- Подберите модель на тренировках, сделайте прогнозы в тестовом наборе и вычислите разницу между истинными / ложными срабатываниями
- Подгоните модель к полному, сделайте прогнозы в тестовом наборе и вычислите разницу между истинными / ложными срабатываниями
Разница между истинными / ложными срабатываниями на шаге 3 меньше, чем на шаге 2, несмотря на то, что обучающий набор является подмножеством полного набора. Поскольку меня не волнует, имеет ли модель в # 3 больше истинных негативов и меньше ложных негативов, могу ли я что-либо сделать без изменения самой функции правдоподобия?