У меня есть модель логистической регрессии (подходит через glmnet в R с упорядоченной упругой сетью), и я хотел бы максимизировать разницу между истинными положительными и ложными положительными сторонами. Для этого на ум пришла следующая процедура:
- Подходит стандартная модель логистической регрессии
- Используя порог прогноза как 0,5, определите все положительные прогнозы
- Назначьте вес 1 для положительно предсказанных наблюдений, 0 для всех остальных
- Подходящая модель взвешенной логистической регрессии
Каковы были бы недостатки этого подхода? Каков будет правильный путь для решения этой проблемы?
Причина желания увеличить разницу между количеством истинных положительных и ложных отрицательных результатов связана с дизайном моего приложения. Как часть классного проекта, я создаю автономного участника на онлайн-рынке - если моя модель предсказывает, что она может что-то купить и продать позже по более высокой цене, она делает ставку. Я хотел бы придерживаться логистической регрессии и выводить двоичные результаты (выигрывать, проигрывать) на основе фиксированных затрат и приращений цены за единицу (я получаю или теряю одинаковую сумму при каждой транзакции). Ложный позитив вредит мне, потому что это означает, что я что-то покупаю и не могу продать за более высокую цену. Тем не менее, ложный минус не повредит мне (только с точки зрения альтернативных издержек), потому что это просто означает, что если я не куплю, но если бы я сделал, я бы заработал деньги. По аналогии,
Я согласен с тем, что порог 0,5 абсолютно произвольный, и когда я оптимизировал модель, начиная с шага 1, на пороге прогнозирования, который дает наибольшую разницу между истинным / ложным положительным результатом, он оказывается ближе к 0,4. Я думаю, что это связано с искаженным характером моих данных - соотношение между негативами и позитивами составляет около 1: 3.
Прямо сейчас я выполняю следующие шаги:
- Разделение данных на обучение / тестирование
- Подберите модель на тренировках, сделайте прогнозы в тестовом наборе и вычислите разницу между истинными / ложными срабатываниями
- Подгоните модель к полному, сделайте прогнозы в тестовом наборе и вычислите разницу между истинными / ложными срабатываниями
Разница между истинными / ложными срабатываниями на шаге 3 меньше, чем на шаге 2, несмотря на то, что обучающий набор является подмножеством полного набора. Поскольку меня не волнует, имеет ли модель в # 3 больше истинных негативов и меньше ложных негативов, могу ли я что-либо сделать без изменения самой функции правдоподобия?
источник
Ответы:
Вы, кажется, не хотите логистической регрессии вообще. Вы говорите: «Я бы хотел максимально увеличить разницу между истинными положительными и ложными положительными сторонами». Это хорошая целевая функция, но это не логистическая регрессия. Посмотрим что это.
Сначала немного обозначений. Зависимая переменная будет : Y iYя
Независимые переменные (вещи, которые вы используете, чтобы попытаться предсказать, стоит ли вам покупать) будут (вектор). Параметр, который вы пытаетесь оценить, будет β (вектор). Вы прогнозируете покупку, когда X i β > 0 . Для наблюдения i вы прогнозируете покупку, когда X i β > 0 или когда функция индикатора 1 X i β > 0 = 1 .Икся β Иксяβ> 0 я Иксяβ> 0 1Иксяβ> 0= 1
Истинный положительный результат наблюдается при наблюдении когда оба Y i = 1 и 1 X i β > 0 = 1 . Ложноположительный результат наблюдения i возникает, когда Y i = 0 и 1 X i β > 0 = 1 . Вы хотите найти β, который максимизирует истинные позитивы минус ложные позитивы, или: m a x βя Yя= 1 1Иксяβ> 0= 1 я Yя= 0 1Иксяβ> 0= 1 β
Это не особенно знакомая целевая функция для оценки модели дискретного отклика, но потерпите меня, пока я занимаюсь небольшой алгеброй целевой функции:
Теперь у этого оценщика есть имя! Он называется оценщиком максимальной оценки. Это очень интуитивно понятный способ оценки параметра модели дискретного отклика. Параметр выбирается таким образом, чтобы максимально увеличить количество правильных прогнозов. Первый член - это число истинных позитивов, а второй - количество истинных негативов.
источник
Есть несколько вещей, которые не так с этим подходом, в том числе:
источник
Лучший подход к достижению того, что вы пытаетесь описать, - это, вероятно, прямая оптимизация параметров логистической регрессии с помощью функции потерь AUC. Учебник "Статистические методы в диагностической медицине" Чжоу описывает этот метод.
AUC (область под кривой рабочих характеристик приемника - или ROC) грубо интерпретируется как вероятность того, что случайный "случай" имеет более высокое значение маркера, чем "контроль". Это мера дискриминации модели или ее способность правильно классифицировать результат. ROC - это кривая в единичной плоскости, которая показывает чувствительность в сравнении с 1 - специфичность для всех возможных значений маркеров (подходящих результатов) в регрессионной модели.
Используя традиционную формулировку модели логистической регрессии,
с помощью логарифмических коэффициентов для параметров модели вы можете приблизительно определить функцию потерь на основе AUC для получения оптимальных параметров. В отличие от логистической регрессии, основанной на вероятности, регрессия AUC не является регулярной и может сходиться к локальным максимумам в пространстве параметров.
источник