Я строю модель склонности, используя логистическую регрессию для служебного клиента. Меня беспокоит то, что из всей выборки мои «плохие» аккаунты составляют всего 5%, а остальные все хороши. Я предсказываю «плохо».
- Будет ли результат смещен?
- Что является оптимальным соотношением «плохое к хорошему» для построения хорошей модели?
Ответы:
Я не согласен с другими ответами в комментариях, поэтому справедливо дать свои собственные. Пусть будет ответом (хорошие / плохие счета), а X будет ковариатами.Y Икс
Для логистической регрессии модель следующая:
Подумайте, как данные могут быть собраны:
И то, и другое подходит для приведенной выше модели, поскольку вы только моделируете распределение . Это можно назвать проспективным исследованием .Y| Икс
В качестве альтернативы:
(Вы также можете выбрать данные, основанные на и некоторых переменных X : это будет стратифицированное исследование случай-контроль, с которым будет гораздо сложнее работать, поэтому я не буду вдаваться в подробности).Y Икс
Из эпидемиологии есть хороший результат (см. Prentice and Pyke (1979) ), что для исследования случай-контроль максимальные вероятностные оценки для можно найти с помощью логистической регрессии, которая использует проспективную модель для ретроспективных данных.β
Так какое отношение это имеет к вашей проблеме?
Что ж, это означает, что если вы в состоянии собрать больше данных, вы можете просто посмотреть на плохие счета и по-прежнему использовать логистическую регрессию для оценки (но вам необходимо настроить α для учета чрезмерного представления ). Скажем, это стоит 1 доллар за каждую дополнительную учетную запись, тогда это может быть более экономичным, чем просто просмотр всех учетных записей.βя α
Но с другой стороны, если у вас уже есть ВСЕ возможные данные, нет смысла расслаивать: вы просто отбрасываете данные (даете худшие оценки), а затем остаетесь с проблемой попытки оценить .α
источник
Асимптотически соотношение положительных и отрицательных паттернов по сути не имеет значения. Проблема возникает главным образом, когда у вас слишком мало выборок из класса меньшинства, чтобы адекватно описать его статистическое распределение. Увеличение набора данных обычно решает проблему (где это возможно).
Если это невозможно, лучше всего выполнить повторную выборку данных, чтобы получить сбалансированный набор данных, а затем применить мультипликативную корректировку к выходу классификатора, чтобы компенсировать разницу между обучающим набором и частотами относительного рабочего класса. Хотя вы можете рассчитать (асимптотически) оптимальный коэффициент корректировки, на практике лучше настроить настройку с помощью перекрестной проверки (поскольку мы имеем дело с конечным практическим случаем, а не с асимптотическим).
В такой ситуации я часто использую комитет моделей, где каждая из них обучается всем шаблонам меньшинства и разной случайной выборке шаблонов большинства того же размера, что и шаблоны меньшинства. Это защищает от неудачи в выборе единственного подмножества моделей большинства.
источник
Теоретически, вы сможете различать лучше, если пропорции «хорошо» и «плохо» примерно одинаковы по размеру. Вы можете быть в состоянии двигаться к этому путем стратифицированной выборки, передискретизации плохих случаев, а затем повторного взвешивания, чтобы позже вернуться к истинным пропорциям.
Это несет в себе некоторые риски. В частности, ваша модель, скорее всего, будет маркировать людей как «потенциально плохих» - предположительно, тех, кто может не оплачивать счета за коммунальные услуги в установленный срок. Важно, чтобы влияние ошибок при этом было правильно распознано: в частности, сколько «хороших клиентов» будет помечено моделью как «потенциально плохие», и вы с меньшей вероятностью ошибетесь в пересмотре, если вы не исказили свое модель стратифицированной выборкой.
источник
Теперь имеет значение, что у вас низкий процент неудач (плохих аккаунтов)? Не совсем, если ваши выборочные данные сбалансированы, как уже указывали некоторые люди. Однако, если ваши данные не сбалансированы, то получение большего количества данных может быть практически бесполезным, если есть некоторые эффекты выбора, которые вы не принимаете во внимание. В этом случае вы должны использовать сопоставление, но отсутствие баланса может сделать сопоставление довольно бесполезным. Еще одна стратегия - попытаться найти естественный эксперимент, чтобы вы могли использовать инструментальную переменную или схему разрывов регрессии.
И последнее, но не менее важное: если у вас сбалансированная выборка или нет предвзятого выбора, вы можете быть обеспокоены тем фактом, что плохой аккаунт встречается редко. Я не думаю, что 5% редкость, но на всякий случай взгляните на статью Гэри Кинга об управлении редкой логистикой событий. В пакете Zelig в R вы можете запустить логистику редких событий.
источник
Итак, я работаю в Обнаружении Мошенничества, поэтому такого рода проблемы не новы для меня. Я думаю, что у сообщества машинного обучения есть немало, чтобы сказать о несбалансированных данных (так как уроки несбалансированы). Итак, есть пара мертвых простых стратегий, которые, я думаю, уже были упомянуты, и пара интересных идей, и некоторые из них. Я даже не собираюсь притворяться, что знаю, что это значит для асимптотики для вашей проблемы, но это всегда дает мне разумные результаты в логистической регрессии. Где-то там может быть бумага, но я не уверен.
Вот ваши варианты, как я вижу это:
Во всяком случае, я использовал все эти методы, но я считаю, что самое простое - это просто переосмыслить проблему логистической регрессии. Одна вещь, которую вы можете сделать, чтобы проверить вашу модель, это взять:
-Intercept/beta
Это должно быть границей решения (50% вероятности быть в любом классе) для данной переменной при прочих равных условиях . Если это не имеет смысла, например, граница принятия решения - это отрицательное число для переменной, которая строго положительна, то у вас есть отклонение в вашей логистической регрессии, которое необходимо исправить.
источник