Відбір проб для незбалансованих даних в регресії


22

Були хороші запитання щодо поводження з незбалансованими даними в контексті класифікації , але мені цікаво, що люди роблять для вибірки регресії.

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

У цьому сценарії я можу переоцінити приклади позитивних цілей, щоб відповідати кількості негативних цільових прикладів, а потім навчити модель диференціювати два випадки. Очевидно, що підхід до навчання погано справляється з незбалансованими даними, тому мені потрібно робити якийсь вибірки. Який був би гідний спосіб "скасувати" це надмірне зондування під час прогнозування? Можливо, переклад на (негативну) середню або медіану цілі даних природних тренувань?

Відповіді:


15

Дисбаланс - це не обов'язково проблема, але те, як ви потрапите, може бути. Базову стратегію вибірки базувати на цільовій змінній. Оскільки ця змінна включає випадковість у вашій регресійній моделі, якщо ви зробите вибірку на основі цього, у вас виникнуть великі проблеми з будь-яким виводом. Я сумніваюся, що ці проблеми можна "скасувати".

Ви можете законно переоцінювати або недооцінювати вибірку на основі змінних прогнозів . У цьому випадку, якщо ви ретельно переконаєтесь, що припущення щодо моделей здаються дійсними (наприклад, гомоскедастичність, яка виникає на увазі як важлива в цій ситуації, якщо у вас є "звичайна" регресія з звичайними припущеннями), я не думаю, що вам потрібно скасуйте надмірне відображення при прогнозуванні. Тепер ваш випадок буде аналогічний аналітику, який явно розробив експеримент, щоб мати збалансований діапазон змінних прогнозів.

Редагувати - додавання - розширення щодо того, чому погано вибірки на основі Y

При встановленні стандартної регресійної моделі очікується, що буде нормально розподіленим, мати середнє значення нуля і бути незалежним та однаково розподіленим. Якщо ви обираєте вибірку на основі значення y (яке включає внесок , а також ), то e більше не матиме середнього нуля або буде розподілено однаково. Наприклад, низька величина y, яка може включати дуже низькі значення e, може бути меншою ймовірністю. Це руйнує будь-які умовиводи, засновані на звичайних засобах підгонки таких моделей. Виправлення можуть бути подібними до тих, що зроблені в економетриці для встановлення усічених моделей, але вони є болем і вимагають додаткових припущень, і їх слід застосовувати лише тоді, коли альтернативи немає.у=Хб+еееХб

Розглянемо крайню ілюстрацію нижче. Якщо обрізати ваші дані за довільним значенням для змінної відповіді, ви вводите дуже значні ухили. Якщо обрізати його для пояснювальної змінної, не обов'язково виникає проблема. Ви бачите, що зелена лінія, заснована на підмножині, вибраному через значення їх передбачувача, дуже близька до справжньої пристосованої лінії; цього не можна сказати про синю лінію, засновану лише на синіх точках.

Це поширюється на менш тяжкий випадок недостатнього або надмірного розміщення (оскільки усічення можна сприймати як недоцілене зближення, прийняте до своєї логічної крайності).

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

# 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
Гарний приклад! Ваш графік нагадує мені документ Річарда Берка (1983) про зміщення вибіркової вибірки . Також зауважте, що ви можете «скасувати» ці проблеми, якщо ви чітко знаєте механізм вибору вибірки, і існує низка економетричних моделей, побудованих навколо цього поняття (наприклад, модель тобіта або робота Джеймса Гекмана).
Енді Ш

2

Це питання, чи робите ви причинний аналіз чи прогнозування. Читайте http://m.statistichorizons.com/?ref=http%3A%2F%2Ft.co%2F54MWZrVAyX&url=http%3A%2F%2Fstatistichorizons.com%2Fprediction-vs-causation-in-regression-analysis&width=640

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

Ви "скасовуєте" остаточний аналіз регресійної моделі та незбалансований набір даних.


2

Це не спроба забезпечити практичне вирішення вашої проблеми, але я просто трохи вивчив питання, що стосуються незбалансованих наборів даних у регресійних проблемах, і хотів поділитися своїми результатами:

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

1

насамперед, раціон 1:10 зовсім не поганий. Є простий спосіб скасування вибірки-

1) для проблеми класифікації. Якщо ви відібрали будь-який негативний клас на 10. отримана ймовірність у 10 разів більша, ніж повинна бути. ви можете просто розділити отриману ймовірність на 10. (відома як повторна калібрування моделі)

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


Я не думаю, що це все так просто, Арпіте. Багато нелінійних альгів не бачать достатньої кількості примірників класу, що не підлягає зразку, і перекошуються у бік пробовідбірки, і через їх нелінійності у вас не буде коштів це виправити.
Анатолій Алексєєв

1

Я думаю, що може допомогти вам з огляду на вашу проблему - це методика регресії синтезу меншин для регресії (SMOTER). На цю тему є деякі дослідження. Однак він залишається менш дослідженим, ніж його класифікаційний аналог, як ви, мабуть, стикалися.

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

Якщо вас більше цікавить практичне рішення, перший автор має R-реалізацію, доступну на її сторінці Github. https://github.com/paobranco/SMOGN-LIDTA17

Якщо Python більше ваших переконань, я нещодавно розповсюдив цілком пітонічну реалізацію алгоритму 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.