Próbkowanie dla niezrównoważonych danych w regresji

22

Pojawiły się dobre pytania dotyczące postępowania z niezrównoważonymi danymi w kontekście klasyfikacji , ale zastanawiam się, co ludzie robią, aby próbować pod kątem regresji.

Powiedzmy, że dziedzina problemowa jest bardzo wrażliwa na znak, ale tylko w pewnym stopniu wrażliwa na wielkość celu. Jednak wielkość jest na tyle ważna, że ​​modelem powinna być regresja (cel ciągły), a nie klasyfikacja (klasy dodatnie vs. ujemne). I powiedz w tej dziedzinie problemów, że każdy zestaw danych treningowych będzie miał 10 razy więcej negatywnych niż pozytywnych celów.

W tym scenariuszu mogę nadpróbkować przykłady z celem dodatnim, aby dopasować liczbę przykładów z celem ujemnym, a następnie wytrenować model rozróżniania dwóch przypadków. Oczywiście podejście treningowe źle wpływa na niezrównoważone dane, więc muszę przeprowadzić próbkowanie. Jaki byłby porządny sposób na „cofnięcie” tego nadpróbkowania podczas prognozowania? Być może tłumaczenie przez (ujemną) średnią lub medianę celu naturalnych danych treningowych?

someben
źródło

Odpowiedzi:

15

Nierównowaga niekoniecznie stanowi problem, ale sposób jej uzyskania może być. Opieranie strategii próbkowania na zmiennej docelowej jest niewłaściwe. Ponieważ zmienna ta uwzględnia losowość w modelu regresji, jeśli spróbujesz na jej podstawie, będziesz mieć duże problemy z wnioskowaniem. Wątpię, czy można „cofnąć” te problemy.

Można zgodnie z prawem nadmiernie lub niedostatecznie próbować w oparciu o zmienne predykcyjne . W takim przypadku, o ile dokładnie sprawdzisz, czy założenia modelu wydają się prawidłowe (np. Homoscedastyczność, która przychodzi na myśl jako równie ważna w tej sytuacji, jeśli masz „zwykłą” regresję z przyjętymi założeniami), nie sądzę, że musisz to robić cofnij nadpróbkowanie podczas przewidywania. Twój przypadek byłby teraz podobny do analityka, który specjalnie zaprojektował eksperyment, aby mieć zrównoważony zakres zmiennych predykcyjnych.

Edycja - dodawanie - rozwinięcie, dlaczego próbkowanie na podstawie Y jest złe

W dopasowaniu standardowego modelu regresji oczekuje się, że będzie normalnie rozłożone, ma średnią zero, będzie niezależne i identycznie rozłożone. Jeśli wybierzesz próbkę na podstawie wartości y (która obejmuje udział a także ), e nie będzie już miało średniej zero lub będzie identycznie rozmieszczone. Na przykład niskie wartości y, które mogą obejmować bardzo niskie wartości e, mogą być mniej prawdopodobne. Rujnuje to wszelkie wnioskowanie oparte na zwykłych sposobach dopasowania takich modeli. Korekty mogą być wykonane podobnie do tych wykonanych w ekonometrii w celu dopasowania skróconych modeli, ale są uciążliwe i wymagają dodatkowych założeń i powinny być stosowane tylko wtedy, gdy nie ma alternatywy.y=Xb+mimimiXb

Rozważ skrajną ilustrację poniżej. Jeśli obetniesz dane o dowolnej wartości dla zmiennej odpowiedzi, wprowadzisz bardzo znaczące uprzedzenia. Jeśli obetniesz ją dla zmiennej objaśniającej, niekoniecznie będzie to problem. Widzisz, że zielona linia, oparta na podzbiorze wybranym ze względu na ich wartości predyktorów, jest bardzo zbliżona do prawdziwie dopasowanej linii; nie można tego powiedzieć o niebieskiej linii, opartej tylko na niebieskich punktach.

Rozciąga się to na mniej poważny przypadek niedoszacowania lub nadmiernego próbkowania (ponieważ obcięcie można postrzegać jako niedoszacowanie doprowadzone do jego logicznej skrajności).

wprowadź opis zdjęcia tutaj

# 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")
Peter Ellis
źródło
Dzięki za odpowiedź, Peter. Czy mógłbyś wyjaśnić, co rozumiesz przez „Ponieważ ta zmienna uwzględnia losowość w twoim modelu regresji”? Cel jest obserwowalny w środowisku, więc masz na myśli błąd pomiaru?
someben
1
Oto artykuł profesora NYU o nazwisku Foster Provost na ten temat: pages.stern.nyu.edu/~fprovost/Papers/skew.PDF W moim przypadku robię regresję z niezrównoważonymi danymi, a nie klasyfikacją. Stąd moje pytanie.
someben
1
@someben - Opracowałem i dodałem przykład. W literaturze regresyjnej dobrze opisano, że nie można próbkować na podstawie zmiennej zależnej. Powinno to dotyczyć również innych modeli. Próbka, która jest „niezrównoważona”, jest czymś innym i nie stanowi problemu; chyba że celowo stworzyłeś go poprzez nieuzasadnioną strategię próbkowania. Problemem nie jest równowaga czy jej brak, ale sposób uzyskiwania danych.
Peter Ellis,
2
@someben, nie, nie sądzę, żeby miało to jakąkolwiek różnicę. Ta kwestia jest bardziej fundamentalna.
Peter Ellis,
1
Niezły przykład! Twój wykres przypomina mi artykuł Richarda Berka (1983) na temat odchylenia w doborze próbek . Należy również zauważyć, że można „cofnąć” te problemy, jeśli wyraźnie znasz mechanizm wyboru próbki, a wokół tego pojęcia zbudowano szereg modeli ekonometrycznych (takich jak model tobitowy lub praca Jamesa Heckmana).
Andy W
2

Jest to pytanie, czy przeprowadzasz analizę przyczynową czy przewidujesz. Przeczytaj http://m.statystycznyhorizons.com/?ref=http%3A%2F%2Ft.co%2F54MWZrVAyX&url=http%3A%2F%2Fstatistichorizons.com%2Fprediction-vs-causation-in-regression-analysis&width=640

Ponowne próbkowanie zmiennej docelowej do celów szkoleniowych do celów prognozowania działa tak długo, jak długo jeden test na próbce niepoddanej ponownej próbce zawiera próbkę. Ostateczna tabela wyników musi opierać się wyłącznie na zawieszeniu. Aby uzyskać największą dokładność w określaniu przewidywalności modelu, należy zastosować techniki walidacji krzyżowej.

„Cofasz” przez ostateczną analizę modelu regresji i niezrównoważonego zestawu danych.

Chris
źródło
2

Nie jest to próba praktycznego rozwiązania twojego problemu, ale właśnie przeprowadziłem trochę badań nad radzeniem sobie z niezrównoważonymi zestawami danych w problemach z regresją i chciałem podzielić się moimi wynikami:

jhin
źródło
1

po pierwsze, racja 1:10 wcale nie jest zła. istnieje prosty sposób cofnięcia próbkowania

1) w przypadku problemu z klasyfikacją, jeśli podpróbkowano dowolną klasę ujemną do 10. prawdopodobieństwo wynikowe jest 10 razy większe niż powinno. możesz po prostu podzielić wynikowe prawdopodobieństwo przez 10. (znane jako ponowna kalibracja modelu)

2) Facebook również podpróbkuje (do przewidywania kliknięć w regresji logistycznej) i wykonuje próbkowanie ujemne w dół. ponowne kalibrowanie odbywa się za pomocą prostej formuły p / (p + (1-p) / w); gdzie p jest prognozą w próbkowaniu w dół, nw jest ujemną częstotliwością próbkowania w dół.

Arpit Sisodia
źródło
Nie sądzę, że to takie proste, Arpit. Wiele nieliniowych alg nie widzi wystarczającej liczby niewspróbkowanych klas i staje się przekrzywione w kierunku nadmiernie próbkowanych klas, a ze względu na ich nieliniowość nie będziesz w stanie tego naprawić.
Anatolij Aleksiejew
1

Myślę, że tym, co może ci pomóc, biorąc pod uwagę twój problem, jest technika nadpróbkowania mniejszości syntetycznej dla regresji (SMOTER). Istnieje kilka badań na ten temat. Jednak pozostaje mniej zbadany niż jego odpowiednik w klasyfikacji, jak prawdopodobnie się zetknąłeś.

Mogę zasugerować artykuł cytowany poniżej (i konferencję, którą przedstawiono na stronie http://proceedings.mlr.press/v74/ ) w zależności od tego, jak bardzo jesteś zainteresowany jego zrozumieniem z perspektywy badań. Naprawdę doceniam wprowadzenie szumu Gaussa w generowaniu obserwacji syntetycznych.

Jeśli bardziej interesuje Cię praktyczne rozwiązanie, pierwsza autorka ma implementację R dostępną na swojej stronie Github. https://github.com/paobranco/SMOGN-LIDTA17

Jeśli bardziej przekonuje Cię Python, niedawno rozpowszechniłem całkowicie Pythonową implementację algorytmu SMOGN, która jest teraz dostępna i jest obecnie testowana jednostkowo. https://github.com/nickkunz/smogn

Mam nadzieję, że to pomogło!

Branco, P., Torgo, L., Ribeiro, R. (2017). „SMOGN: Podejście wstępne do przetwarzania w przypadku niezrównoważonej regresji”. Proceedings of Machine Learning Research, 74: 36-50. http://proceedings.mlr.press/v74/branco17a/branco17a.pdf .

Nick Kunz
źródło