Jaki problem rozwiązuje oversampling, undersampling i SMOTE?

25

W ostatnim dobrze odebranym pytaniu Tim pyta, kiedy niezrównoważone dane naprawdę stanowią problem w uczeniu maszynowym ? Przesłanka tego pytania polega na tym, że istnieje wiele literatury dotyczącej uczenia maszynowego, która omawia równowagę klas i problem niezrównoważonych klas . Chodzi o to, że zestawy danych z nierównowagą między klasą dodatnią i ujemną powodują problemy dla niektórych algorytmów klasyfikacji uczenia maszynowego (w tym tutaj modeli probabilistycznych) i należy szukać metod „równoważenia” zestawu danych, przywracając idealne 50/50 podział na klasy dodatnie i ujemne.

Ogólny sens tych głosowanych odpowiedzi jest taki, że „tak nie jest, przynajmniej jeśli jesteś rozważny w swoim modelowaniu”. M. Henry L., w głosowaniu w głosowaniu na przyjętą odpowiedź, stwierdza

[...] nie ma problemu niskiego poziomu z wykorzystaniem niezrównoważonych danych. Z mojego doświadczenia wynika, że ​​rada „unikania niezrównoważonych danych” dotyczy albo algorytmu, albo odziedziczonej mądrości. Zgadzam się z AdamO, że ogólnie niezrównoważone dane nie stanowią problemu koncepcyjnego dla dokładnie określonego modelu.

AdamO twierdzi, że „problem” z równowagą klas jest tak naprawdę rzadkością klasową

Dlatego przynajmniej w regresji (ale podejrzewam we wszystkich okolicznościach), jedynym problemem związanym z niezrównoważonymi danymi jest to, że skutecznie masz małą próbkę. Jeśli jakakolwiek metoda jest odpowiednia dla liczby osób w rzadszej klasie, nie powinno być problemu, jeśli proporcja członków nie jest zrównoważona.

Jeśli jest to prawdziwy problem, pozostawia otwarte pytanie: jaki jest cel wszystkich metod ponownego próbkowania mających na celu zbilansowanie zestawu danych: oversampling, undersampling, SMOTE itp.? Najwyraźniej nie rozwiązują problemu niejawnego posiadania małej próbki, nie można tworzyć informacji z niczego!

Matthew Drury
źródło
Właśnie to zmieniłbym na ... dzięki. Nie obejmuje całego zakresu twojego pytania, ale tytuł nie musi - wyraźnie określa, o co pytasz.
Glen_b
Z pewnością istnieją sytuacje, w których metody ładowania początkowego i podpróbkowania są przydatne, a czasem lepsze niż inne metody nieparametryczne. Książki o bootstrapie i podpróbkowaniu to pokrywają. Na tej stronie są dyskusje, w których omawia się to, w tym przewagę bootstrapu nad pominięciem w analizie dyskryminacyjnej, nawet w stosunkowo małych próbkach. Z pewnością są sytuacje, w których bootstrap kończy się niepowodzeniem i są one wymienione w mojej książce, a także w innych.
Michael R. Chernick
@MichaelChernick Nie mówię o bootstrapie, właśnie o tym komentował Glen. Mówię o podejściach do „równoważenia klas”, takich jak próbkowanie zbyt duże i zbyt małe, aby klasa dodatnia do ujemnej była równo reprezentowana w zbiorze danych.
Matthew Drury
Czy obejmujecie podpróbkowanie? Masz na myśli tylko nierówną wielkość próby? Jak ogólnie składasz oświadczenie?
Michael R. Chernick
@MichaelChernick Dodałem kilka uwag wyjaśniających w pierwszym i ostatnim akapicie, mam nadzieję, że to pomoże.
Matthew Drury

Odpowiedzi:

0

Niektóre techniki próbkowania mają na celu skorygowanie odchyleń (jeśli wskaźnik populacji jest znany i różny), ale zgadzam się z poglądem, że klasa niezrównoważona nie jest samym problemem. Jednym z głównych powodów jest wydajność przetwarzania. Jeśli na przykład nasza klasa docelowa jest wyjątkowo rzadkim przypadkiem w stosunku 1: 100000, nasz zestaw danych modelowania byłby ogromny i obliczenia byłyby trudne. Próbkowanie, bez względu na strategię, zawsze wyrzuca niektóre dane w celu zmniejszenia całkowitego rozmiaru zestawu danych. Przypuszczam, że różnicą między różnymi strategiami próbkowania jest spryt, wokół którego wyrzucamy dane, nie tracąc przy tym możliwości przewidywania.

Josh
źródło
4
To wszystko prawda, ale wiele metod, o których mówię, tworzy większe zbiory danych. Upsampling tworzy więcej instancji klasy dodatniej poprzez kopiowanie istniejących punktów danych, a SMOTE tworzy „syntetyczne” punkty danych rzadkiej klasy. Z pewnością nie pomogłoby to w wydajności obliczeniowej.
Matthew Drury
0

Problem, który te metody próbują rozwiązać, polega na zwiększeniu wpływu klasy mniejszości na funkcję kosztów. Wynika to z faktu, że algos próbuje dobrze dopasować cały zestaw danych, a następnie dostosować się do większości. Innym podejściem byłoby zastosowanie odważników klasowych, a to aporoachowanie w większości przypadków daje lepsze wyniki, ponieważ nie dochodzi do utraty informacji w wyniku niepełnego próbkowania lub utraty wydajności i wprowadzania hałasu w wyniku nadmiernego próbkowania.

Milan Vukicevic
źródło
2
nie rozumiem twojej odpowiedzi.
Michael R. Chernick
Miałem na myśli to, że wydajność klasyfikatora jest oceniana dla całego zestawu danych (średni błąd zarówno w przykładach pozytywnych, jak i negatywnych), gdzie błąd dla każdego przykładu jest jednakowo ważony. Zatem algorytm (np. Regresja logistyczna) dostosowuje swoją funkcję hipotezy do przykładów, które maksymalizują redukcję błędów. W tym przypadku do klasy większości, gdzie mniejszość (klasa ujemna) jest praktycznie pomijana, ponieważ nie ma dużego wpływu na błąd w całym zestawie danych. Dlatego nadpróbkowanie, przy próbkowaniu lub ważeniu klas pozwala na lepsze dostosowanie algorytmu do klasy mniejszości.
Milan Vukicevic
0

Dam ci bardziej ekstremalny przykład. Rozważ przypadek, w którym masz zestaw danych z 99 punktami danych oznaczonymi jako dodatnie i tylko jeden oznaczony jako ujemny. Podczas treningu twój model zda sobie sprawę, że jeśli sklasyfikuje wszystko jako pozytywne, w końcu mu się to uda. Jednym ze sposobów rozwiązania tego problemu jest nadmierne próbkowanie niewystarczająco reprezentowanej klasy, a innym jest niedopróbowanie nadmiernie reprezentowanej klasy. Na przykład w zestawie danych 70 pozytywnych i 30 negatywnych etykiet mogę próbkować etykiety negatywne z zastępczymi i pozytywne bez zastępowania, co spowoduje, że mój model napotka więcej negatywnych etykiet podczas treningu. W ten sposób, jeśli mój model spróbuje sklasyfikować wszystko jako pozytywne, poniesie większą stratę niż w innym przypadku.

Kolejnym podejściem, które nie dotyczy próbkowania, jest dostosowanie funkcji kosztu w celu nadania większej wagi punktom danych z etykietą mniejszości. Na przykład, jeśli używasz utraty NLL w zbiorze danych, w którym 1 jest nadreprezentowane w porównaniu do 0 w etykietach, możesz dostosować swoją funkcję utraty, aby:

L(xi~,yi)=α(yi)ln(xi~)β(1yi)ln(1xi~)

β>αβα

Ilkin Bayramli
źródło
0

Nie zgodzę się z założeniem, że niezrównoważone dane nie stanowią problemu w uczeniu maszynowym. Być może mniej w regresji, ale z pewnością jest w klasyfikacji.

Niezbilansowane dane są istotne w aplikacjach uczenia maszynowego ze względu na zmniejszoną wydajność algorytmów (badania, o których myślę, dotyczą w szczególności klasyfikatorów) w warunkach nierównowagi klas.

Weźmy prosty problem z klasyfikacją binarną przy stosunku 25: 1 przykładów treningowych klasy A w porównaniu do klasy B. Badania wykazały, że trafność klasyfikacji B wymaga trafienia po prostu ze względu na zmniejszony stosunek danych treningowych. Ma to sens, ponieważ im mniej masz przykładów treningów, tym gorszy jest twój klasyfikator na tych danych. Jak stwierdził jeden z komentujących, nie można zrobić czegoś z niczego. Z artykułów, które widziałem, w problemach z klasyfikacją wieloklasową wydaje się, że musisz przejść do stosunku 10: 1, aby zacząć mieć znaczący wpływ na dokładność klasy mniejszości. Być może ludzie, którzy czytają inną literaturę niż widziałem, mają różne opinie.

Tak więc proponowane rozwiązania to: nadmierne próbkowanie klasy mniejszości, niepełne próbkowanie klasy większości lub stosowanie SMOTE w klasie mniejszości. Tak, nie możesz naprawdę tworzyć danych znikąd (sortowanie SMOTE robi, ale nie dokładnie), chyba że zajmujesz się tworzeniem danych syntetycznych dla klasy mniejszościowej (nie jest to prosta metoda). Inne techniki, takie jak MixUp i tym podobne potencjalnie mieszczą się w tej koncepcji, ale myślę, że są one bardziej regularyzatorami niż rozwiązaniami nierównowagi klas. W artykułach, które przeczytałem, Oversampling> SMOTE> Undersampling.

Bez względu na technikę zmieniasz relacje między klasami większościowymi i mniejszościowymi, które mogą wpływać na występowanie. Innymi słowy, jeśli tworzysz klasyfikator w celu wykrycia bardzo rzadkiej choroby mózgu X, która ma częstość występowania 1 na 100 000, a twój klasyfikator ma wartość 1: 1, możesz być bardziej wrażliwy i mniej konkretny z większą liczbą fałszywie dodatnich wyników . Jeśli ważne jest, aby później wykryć te przypadki i arbitra, wszystko w porządku. Jeśli nie, zmarnujesz dużo czasu i pieniędzy innych ludzi. Ten problem będzie musiał zostać rozwiązany.

Aby odpowiedzieć na pytanie:

tl / dr: Istnieją operacje równoważące klasy, takie jak Over / Undersampling i SMOTE (i dane syntetyczne) w celu poprawy wydajności algorytmu uczenia maszynowego (klasyfikatora) poprzez rozwiązanie nieodłącznego uderzenia wydajności w algorytmie spowodowanym przez samą nierównowagę .

drsxr
źródło