Смещается ли логистическая регрессия, когда переменная результата делится на 5% - 95%?

10

Я строю модель склонности, используя логистическую регрессию для служебного клиента. Меня беспокоит то, что из всей выборки мои «плохие» аккаунты составляют всего 5%, а остальные все хороши. Я предсказываю «плохо».

  • Будет ли результат смещен?
  • Что является оптимальным соотношением «плохое к хорошему» для построения хорошей модели?
navaneeth
источник
Я думаю, что всегда лучше иметь 50% товаров и 50% плохих в соответствии с эмпирическим правилом. Модель не должна быть смещена на образец.

Ответы:

7

Я не согласен с другими ответами в комментариях, поэтому справедливо дать свои собственные. Пусть будет ответом (хорошие / плохие счета), а X будет ковариатами.YИкс

Для логистической регрессии модель следующая:

журнал(п(Yзнак равно1|Иксзнак равноИкс)п(Yзнак равно0|Иксзнак равноИкс))знак равноα+Σязнак равно1КИксяβя

Подумайте, как данные могут быть собраны:

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

И то, и другое подходит для приведенной выше модели, поскольку вы только моделируете распределение . Это можно назвать проспективным исследованием .Y|Икс

В качестве альтернативы:

  • Вы можете выбрать наблюдения, основанные на (скажем, 100 от каждого), и увидеть относительную распространенность X (то есть, вы стратифицируете по Y ). Это называется ретроспективным или тематическим исследованием .YИксY

(Вы также можете выбрать данные, основанные на и некоторых переменных X : это будет стратифицированное исследование случай-контроль, с которым будет гораздо сложнее работать, поэтому я не буду вдаваться в подробности).YИкс

Из эпидемиологии есть хороший результат (см. Prentice and Pyke (1979) ), что для исследования случай-контроль максимальные вероятностные оценки для можно найти с помощью логистической регрессии, которая использует проспективную модель для ретроспективных данных.β

Так какое отношение это имеет к вашей проблеме?

Что ж, это означает, что если вы в состоянии собрать больше данных, вы можете просто посмотреть на плохие счета и по-прежнему использовать логистическую регрессию для оценки (но вам необходимо настроить α для учета чрезмерного представления ). Скажем, это стоит 1 доллар за каждую дополнительную учетную запись, тогда это может быть более экономичным, чем просто просмотр всех учетных записей.βяα

Но с другой стороны, если у вас уже есть ВСЕ возможные данные, нет смысла расслаивать: вы просто отбрасываете данные (даете худшие оценки), а затем остаетесь с проблемой попытки оценить .α

Саймон Бирн
источник
Это верно только в том случае, если у вас достаточно данных для адекватного представления класса меньшинства (что обычно является проблемой при большом дисбалансе класса - проблема сама по себе, но у вас недостаточно выборок из меньшинства). учебный класс). В этом случае было бы хорошей идеей повысить дифференциальный вес положительных и отрицательных классов, корректировать альфа или мультипликативную корректировку (все эквивалентные IIRC), чтобы повысить класс меньшинства. Расслоение данных было бы дешевым и веселым эквивалентом.
Дикран Сумчатый
@Dikran: Я не вижу, как что-то из этого не может быть правдой в этом случае: вам не нужно представлять класс меньшинства, вам просто нужно представить относительную разницу с большинством. Если у вас недостаточно данных для этого, то отбрасывание наблюдений большинства не поможет.
Саймон Бирн
@ Симон, я согласен с вами, что стратификация не является хорошей идеей, если вы не хотите корректировать альфа, повторно взвешивать шаблоны или корректировать выходные данные модели. Как я уже сказал, проблема дисбаланса классов заключается не в дисбалансе как таковом, а в том, что у класса меньшинства недостаточно данных для адекватного определения «относительной разницы с большинством». Когда это происходит, в среднем это смещает вывод в сторону класса большинства, и, следовательно, полезно что-то делать для компенсации этого смещения. Расслоение - один из способов сделать это, но далеко не лучший.
Дикран Сумчатый
@Simon, кстати, спасибо за ссылки на Prentice и Pyke, это выглядит полезным.
Дикран Сумчатый
1
@Dikran: Это может быть предвзятым для других моделей, но НЕ для логистической регрессии, вот и весь смысл.
Саймон Бирн
3

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

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

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

Дикран Сумчатый
источник
2
Но относится ли это к логистической регрессии? Нам не нужно описывать статистическое распределение любого из классов, только относительные отношения шансов (см. Мой комментарий к @Henry).
Саймон Бирн
Возможно, в одномерном примере, но если у вас более одной объясняющей переменной, вам нужна информация о распределении шаблонов для правильной ориентации «дискриминанта».
Дикран Marsupial
Не лучше ли применить мультипликативную корректировку в логарифмическом пространстве до применения логистической функции?
rm999
IIRC, предполагаемая оптимальная корректировка заключается в умножении на отношение частот рабочего класса к обучающему набору, это основано на правиле Байеса, поэтому оно применяется к вероятностям, а не к логарифмическому отношению. Однако, поскольку мы просто пытаемся скорректировать математически неразрешимую эффективность оценки, вероятно, не имеет большого значения, как производится корректировка, это действительно просто «фактор выдумки».
Дикран Сумчатый
@Dikran: я не понимаю, что вы имеете в виду, правильно ориентируя «дискриминант». Даже в многомерном случае логистическая регрессия все еще просто вычисляет относительные отношения шансов.
Саймон Бирн
1

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

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

Генри
источник
На самом деле, я не думаю, что это верно для логистической регрессии: параметр отношения шансов (который выполняет дискриминацию) инвариантен к стратификации в переменной ответа. Вот почему он может быть использован для исследований случай-контроль.
Саймон Бирн
@Simon: Я не согласен с вашим комментарием по поводу отношения шансов, но я видел, что люди не могут правильно отнести это к последствиям для населения после стратифицированной выборки, когда они делали это в других случаях. Например, если вы обнаружите, что люди, для которых фактор А является истинным, имеют в два раза больше шансов быть «плохими», чем люди без фактора А, это не должно измениться при стратифицированной выборке, но если вы хотите знать, какая доля населения будет Если вы нацелены на тех, у кого есть фактор А, то это будет излишне, тогда вам нужно тщательно взвесить информацию из ваших образцов.
Генри
извини, это было не то, с чем я не согласен. Это был первый бит: следствием неизменности является то, что как только у вас есть данные, нет смысла расслаивать, вы просто выбрасываете данные. (история отличается, когда речь идет о стоимости сбора данных, отсюда и существование исследований типа «случай-контроль»).
Саймон Бирн
@Simon: Когда вы говорите «исследование случай-контроль», подразумеваете ли вы, что изначально планировали взять образец «плохих» дел и образец «хороших» дел? С большей долей «плохих» случаев, чем малая доля среди населения? Если так, то в своем ответе я имел в виду «стратифицированную выборку, чрезмерную выборку плохих случаев».
Генри
Да, именно это я и имел в виду. Казалось, вопрос указывает на то, что у них уже есть данные, следовательно, нет смысла расслаивать.
Саймон Бирн
0

Yяпяпя

Yя~Бернулли(пя)
пязнак равнологит-1(a+б1Икс1+,,,+бNИксN)
логит-1знак равноехр(Икс)1+ехр(Икс)

Теперь имеет значение, что у вас низкий процент неудач (плохих аккаунтов)? Не совсем, если ваши выборочные данные сбалансированы, как уже указывали некоторые люди. Однако, если ваши данные не сбалансированы, то получение большего количества данных может быть практически бесполезным, если есть некоторые эффекты выбора, которые вы не принимаете во внимание. В этом случае вы должны использовать сопоставление, но отсутствие баланса может сделать сопоставление довольно бесполезным. Еще одна стратегия - попытаться найти естественный эксперимент, чтобы вы могли использовать инструментальную переменную или схему разрывов регрессии.

И последнее, но не менее важное: если у вас сбалансированная выборка или нет предвзятого выбора, вы можете быть обеспокоены тем фактом, что плохой аккаунт встречается редко. Я не думаю, что 5% редкость, но на всякий случай взгляните на статью Гэри Кинга об управлении редкой логистикой событий. В пакете Zelig в R вы можете запустить логистику редких событий.

Маноэль Галдино
источник
0

Итак, я работаю в Обнаружении Мошенничества, поэтому такого рода проблемы не новы для меня. Я думаю, что у сообщества машинного обучения есть немало, чтобы сказать о несбалансированных данных (так как уроки несбалансированы). Итак, есть пара мертвых простых стратегий, которые, я думаю, уже были упомянуты, и пара интересных идей, и некоторые из них. Я даже не собираюсь притворяться, что знаю, что это значит для асимптотики для вашей проблемы, но это всегда дает мне разумные результаты в логистической регрессии. Где-то там может быть бумага, но я не уверен.

Вот ваши варианты, как я вижу это:

  1. Пересмотрите класс меньшинства. Это равносильно выбору класса меньшинства с заменой, пока у вас не будет того же числа наблюдений, что и у класса большинства. Есть причудливые способы сделать это так, чтобы вы делали такие вещи, как джиттер значений наблюдений, чтобы у вас были значения, близкие к оригиналу, но не идеальные копии и т. Д.
  2. Например, здесь вы берете подвыборку класса большинства. Опять причудливые способы сделать это так, чтобы вы удаляли большинство выборок, которые являются ближайшими к выборкам меньшинства, используя алгоритмы ближайших соседей и так далее.
  3. Пересмотр классов. Для логистической регрессии это то, что я делаю. По сути, вы изменяете функцию потерь так, чтобы наказывать неправильно классифицированный случай меньшинства гораздо тяжелее, чем неправильно классифицированный класс большинства. Но опять же вы технически не делаете максимальную вероятность.
  4. Имитация данных. Много интересных идей, с которыми я играл здесь. Вы можете использовать SMOTE для генерации данных, Генеративные состязательные сети, Автоэнкодеры, использующие генеративную часть, Оценщики плотности ядра для рисования новых образцов.

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

-Intercept/beta

Это должно быть границей решения (50% вероятности быть в любом классе) для данной переменной при прочих равных условиях . Если это не имеет смысла, например, граница принятия решения - это отрицательное число для переменной, которая строго положительна, то у вас есть отклонение в вашей логистической регрессии, которое необходимо исправить.

Райан
источник