Выборка для несбалансированных данных в регрессии


22

Были хорошие вопросы об обработке несбалансированных данных в контексте классификации , но мне интересно, что люди делают, чтобы выбрать регрессию.

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

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

Ответы:


15

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

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

Правка - дополнение - расширение о том, почему это плохо для выборки на основе Y

При подборе стандартной регрессионной модели ожидается, что будет нормально распределено, будет иметь среднее значение, равное нулю, и будет независимым и одинаково распределенным. Если вы выберете свою выборку, основываясь на значении y (которое включает в себя как так и ), то e больше не будет иметь среднее значение нуля или будет одинаково распределено. Например, низкие значения y, которые могут включать в себя очень низкие значения e, могут быть менее вероятными для выбора. Это разрушает любые выводы, основанные на обычных средствах подгонки таких моделей. Исправления могут быть сделаны аналогично внесенным в эконометрике для подгонки усеченных моделей, но они являются трудной задачей и требуют дополнительных допущений, и их следует применять только тогда, когда нет альтернативы.e e X bYзнак равноИксб+еееИксб

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

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

введите описание изображения здесь

# generate data
x <- rnorm(100)
y <- 3 + 2*x + rnorm(100)

# demonstrate
plot(x,y, bty="l")
abline(v=0, col="grey70")
abline(h=4, col="grey70")
abline(3,2, col=1)
abline(lm(y~x), col=2)
abline(lm(y[x>0] ~ x[x>0]), col=3)
abline(lm(y[y>4] ~ x[y>4]), col=4)
points(x[y>4], y[y>4], pch=19, col=4)
points(x[x>0], y[x>0], pch=1, cex=1.5, col=3)
legend(-2.5,8, legend=c("True line", "Fitted - all data", "Fitted - subset based on x",
    "Fitted - subset based on y"), lty=1, col=1:4, bty="n")

Спасибо за ответ, Питер. Не могли бы вы уточнить, что вы подразумеваете под «потому что эта переменная включает в себя случайность в вашей регрессионной модели»? Цель является наблюдаемой в окружающей среде, так что вы имеете в виду погрешность измерения?
Someben

1
Вот статья профессора Нью-Йоркского университета по имени Фостер Провост по этому вопросу: pages.stern.nyu.edu/~fprovost/Papers/skew.PDF В моем случае я делаю регрессию с несбалансированными данными, а не с классификацией. Отсюда и мой вопрос.
Someben

1
@ Someben - Я разработал и добавил пример. В литературе по регрессии хорошо описано, что вы не можете производить выборку на основе зависимой переменной. Это должно относиться и к другим моделям. Образец, который «несбалансирован», - это нечто другое и не является проблемой; если вы специально не создали его с помощью неоправданной стратегии выборки. Проблема не в балансе или его отсутствии, а в том, как вы получаете свои данные.
Питер Эллис

2
@ Someben, нет, я не думаю, что это имеет значение. Проблема более фундаментальная, чем эта.
Питер Эллис

1
Хороший пример! Ваш график напоминает мне статью Ричарда Берка (Richard Berk, 1983) о смещении выборки . Также отметим, что вы можете «отменить» эти проблемы, если вы явно знаете механизм выбора выборки, и существует ряд эконометрических моделей, построенных вокруг этого понятия (таких как модель тобита или работа Джеймса Хекмана).
Энди Ш

2

Это вопрос того, проводите ли вы причинный анализ или прогноз. Прочитайте http://m.statisticalhorizons.com/?ref=http%3A%2F%2Ft.co%2F54MWZrVAyX&url=http%3A%2F%2Fstatisticalhorizons.com%2Fprediction-vs-causation-in-regression-analysis&width=640

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

Вы «отменяете» окончательный анализ регрессионной модели и несбалансированного набора данных.


2

Это не попытка обеспечить практическое решение вашей проблемы, но я просто провел небольшое исследование по работе с несбалансированными наборами данных в задачах регрессии и хотел бы поделиться своими результатами:

  • По сути, это, кажется, более или менее открытая проблема, с очень небольшим количеством опубликованных попыток решения (см. Krawczyk 2016, «Изучение несбалансированных данных: открытые проблемы и будущие направления» ).
  • Стратегии выборки, по-видимому, являются наиболее популярным (только?) Преследуемым подходом к решению, то есть избыточной выборкой недопредставленного класса или недостаточной выборкой перепредставленного класса. См., Например, «SMOTE for Regression», Torgo, Ribeiro et al., 2013 .
  • Все описанные методы работают, выполняя классификацию (непрерывно распределенных) данных по дискретным классам некоторым методом, и используя стандартный метод балансировки классов.

1

во-первых, соотношение 1:10 совсем не плохо. Есть простой способ отменить выборку

1) для задачи классификации: если вы отбирали какой-либо отрицательный класс в 10 раз, результирующая вероятность в 10 раз больше, чем должна быть. Вы можете просто разделить полученную вероятность на 10. (известный как повторная калибровка модели)

2) Facebook также подвыборки (для прогнозирования кликов в логистической регрессии) и делают отрицательную выборку вниз. повторная калибровка выполняется по простой формуле p / (p + (1-p) / w); где p - прогноз при понижающей дискретизации, nw - отрицательная частота понижающей дискретизации.


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

1

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

Я мог бы предложить статью, приведенную ниже (и конференцию, на которой она была представлена ​​по адресу http://proceedings.mlr.press/v74/ ), в зависимости от того, насколько вы заинтересованы в ее понимании с точки зрения исследования. Я действительно ценил введение гауссовского шума в генерацию синтетических наблюдений.

Если вас больше интересует практическое решение, у первого автора есть реализация R на ее странице Github. https://github.com/paobranco/SMOGN-LIDTA17

Если вас больше убеждает Python, я недавно распространил полностью Pythonic-реализацию алгоритма SMOGN, которая теперь доступна и в настоящее время тестируется модулем. https://github.com/nickkunz/smogn

Я надеюсь, что это помогло!

Бранко П., Торго Л., Рибейро Р. (2017). «SMOGN: Подход предварительной обработки для несбалансированной регрессии». Слушания Исследования Машинного обучения, 74: 36-50. http://proceedings.mlr.press/v74/branco17a/branco17a.pdf .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.