Klasyfikacja binarna z klasami wysoce niezrównoważonymi

52

Mam zestaw danych w postaci (funkcje, wyjście binarne 0 lub 1), ale 1 zdarza się dość rzadko, więc po prostu zawsze przewidując 0, uzyskuję dokładność między 70% a 90% (w zależności od konkretnych danych, na które patrzę ). Metody ML dają mi tę samą dokładność i uważam, że powinny być pewne standardowe metody do zastosowania w tej sytuacji, które poprawiłyby dokładność w stosunku do oczywistej zasady przewidywania.

Leniwy kot
źródło
3
Uważam, że ten artykuł jest bardzo pomocny na ten temat: svds.com/learning-imbalanced-classes
J. O'Brien Antognini,
@ J.O'BrienAntognini To naprawdę fajny artykuł!
Jinhua Wang

Odpowiedzi:

30

Zarówno hxd1011, jak i Frank mają rację (+1). Zasadniczo resampling i / lub wrażliwe na koszty uczenie się to dwa główne sposoby na obejście problemu niezrównoważonych danych; trzecią jest użycie metod jądra, które czasami mogą być mniej dotknięte nierównowagą klas. Chciałbym podkreślić, że nie ma rozwiązania w postaci srebrnej kuli. Z definicji masz jedną klasę, która jest nieodpowiednio reprezentowana w twoich próbkach.

Powiedziawszy powyższe, uważam, że bardzo pomocne będą algorytmy SMOTE i ROSE . SMOTE skutecznie stosuje podejście najbliższych sąsiadów, aby wykluczyć członków klasy większościowej, tworząc w podobny sposób syntetyczne przykłady klasy mniejszości. ROSE próbuje utworzyć oszacowania podstawowych rozkładów dwóch klas, stosując wygładzone podejście do ładowania początkowego i próbkuje je na przykładach syntetycznych. Oba są łatwo dostępne w R, SMOTE w pakiecie DMwR i ROSE w pakiecie o tej samej nazwie . Zarówno SMOTE, jak i ROSE powodują, że zbiór danych szkoleniowych jest mniejszy niż oryginalny.k

Prawdopodobnie twierdziłbym, że lepszą (lub mniej złą) metryką w przypadku niezbilansowanych danych jest użycie pola Cohenak i / lub charakterystyki odbiornika Obszar pod krzywą . Kappa Cohena bezpośrednio kontroluje oczekiwaną dokładność, AUC, ponieważ jest to funkcja czułości i swoistości, krzywa jest niewrażliwa na dysproporcje w proporcjach klasowych. Ponownie zauważ, że są to tylko wskaźniki, których należy używać z dużym ziarnem soli. Powinieneś idealnie dostosować je do swojego konkretnego problemu, biorąc pod uwagę zyski i koszty, które są prawidłowe i błędne klasyfikacje w twoim przypadku. Znalazłem to, patrząc na krzywe podnoszeniajest właściwie raczej informacyjny w tej sprawie. Niezależnie od metryki powinieneś spróbować użyć osobnego testu do oceny wydajności twojego algorytmu; właśnie ze względu na brak równowagi w klasie nadmierne dopasowanie jest jeszcze bardziej prawdopodobne, dlatego kluczowe jest testowanie poza próbą.

Prawdopodobnie najbardziej popularnym ostatnim artykułem na ten temat jest „ Uczenie się na podstawie niezrównoważonych danych” autorstwa He i Garcii. Daje to bardzo ładny przegląd kwestii podniesionych przeze mnie i w innych odpowiedziach. Ponadto uważam, że omówienie podpróbkowania dla nierównowagi klas , przedstawione przez Maxa Kuhna jako część pakietu Caret , jest doskonałym źródłem do uzyskania przykładu struktury, w jaki sposób można mierzyć zbyt małe / zbyt duże próbkowanie oraz tworzenie danych syntetycznych przeciwko sobie.

usεr11852 mówi Reinstate Monic
źródło
Trzecim, dość popularnym (i znowu niezbyt odpowiednim) wskaźnikiem jest obszar pod krzywą krzywej precyzji-przywołania. Davis i James, 2006 artykuł jest uważany za klasyka w tej sprawie; CV ma dobre wątek zbyt . Niedawno widziałem artykuł o nieco zaśmieconym tytule: „ Precyzyjnie- przywołanie wykresu jest bardziej pouczające niż wykres ROC podczas oceny binarnych klasyfikatorów w niezrównoważonych zestawach danych ”, więc warto też to sprawdzić.
usεr11852 mówi Reinstate Monic
1
W przypadku implementacji w Pythonie różnych technik ponownego próbkowania danych polecam pakiet do nauki nierównowagi: github.com/scikit-learn-contrib/imbalanced-learn
Vadim
W przypadku wysoce niezrównoważonych rozkładów klas AUPRC zapewnia więcej informacji niż AUROC. Szczegóły nie zostały uwzględnione, ponieważ jest to komentarz. Wśród wielu źródeł jedno jest tutaj .
Zhubarb,
15

Po pierwsze, miarą oceny dla niezrównoważonych danych nie byłaby dokładność. Załóżmy, że robisz wykrywanie oszustw, że 99,9% twoich danych nie jest oszustwem. Możemy łatwo stworzyć model obojętny, który ma 99,9% dokładności. (wystarczy przewidzieć wszystkie dane, które nie stanowią oszustwa).

Chcesz zmienić metrykę oceny z dokładności na inną, taką jak wynik F1 lub precyzja i przywołanie . W drugim linku podałem. istnieją szczegóły i intuicje dotyczące tego, dlaczego przywoływanie precyzyjne będzie działać.

W przypadku wysoce niezrównoważonych danych zbudowanie modelu może być bardzo trudne. Możesz grać z funkcją straty ważonej lub modelować tylko jedną klasę. takich jak SVM jednej klasy lub pasują do wielu odmian Gaussa (jak podałem wcześniej.)

Haitao Du
źródło
2
+1. Dobry przykład i dobra wzmianka o jednoklasowej maszynie SVM. Myślę jednak, że wynik jest nieco zbyt ciężki, ignorując prawdziwy negatywny wynik. F1
usεr11852 mówi: Przywróć Monic
link do „precyzji i przypomnienia” jest martwy?
Jason
13

Problemy z nierównowagą klas można rozwiązać za pomocą uczenia się wrażliwego na koszty lub ponownego próbkowania. Zobacz zalety i wady uczenia się wrażliwego na koszty w porównaniu z próbkowaniem , skopiowane poniżej:


{1} przedstawia listę zalet i wad uczenia się wrażliwego na koszty w porównaniu do pobierania próbek:

2.2 Pobieranie próbek

Nadpróbkowanie i podpróbkowanie można wykorzystać do zmiany rozkładu klas danych szkoleniowych, a obie metody zastosowano do radzenia sobie z nierównowagą klas [1, 2, 3, 6, 10, 11]. Powodem, dla którego zmiana rozkładu klas danych szkoleniowych jest pomocna w uczeniu się przy bardzo wypaczonych zestawach danych, jest fakt, że skutecznie nakłada nierównomierne koszty błędnej klasyfikacji. Na przykład, jeśli zmieni się rozkład klas zestawu treningowego, tak aby stosunek przykładów pozytywnych do negatywnych wynosił od 1: 1 do 2: 1, wówczas skutecznie przypisano współczynnik kosztu błędnej klasyfikacji 2: 1. Ta równoważność między zmianą rozkładu klas danych szkoleniowych a zmianą wskaźnika kosztów błędnej klasyfikacji jest dobrze znana i została formalnie opisana przez Elkan [9].

Znane są wady związane z wykorzystaniem próbkowania w celu wdrożenia uczenia zależnego od kosztów. Wadą undersampling jest to, że pomija potencjalnie użytecznych danych . Z naszej perspektywy główna wada związana z nadpróbkowaniem polega na tym, że tworzenie dokładnych kopii istniejących przykładów sprawia , że przeregulowanie jest prawdopodobne . W rzeczywistości, w przypadku nadpróbkowania, uczeń często generuje regułę klasyfikacji obejmującą pojedynczy, powielony przykład. Drugą wadą nadpróbkowania jest to, że zwiększa liczbę przykładów treningu, a tym samym skraca czas nauki .

2.3 Dlaczego warto korzystać z próbkowania?

Biorąc pod uwagę wady związane z próbkowaniem, warto zapytać, dlaczego ktoś miałby go używać zamiast algorytmu uczenia wrażliwego na koszty do obsługi danych z wypaczonym rozkładem klas i nierównomiernymi kosztami błędnej klasyfikacji. Jest tego kilka przyczyn. Najbardziej oczywistym powodem jest to, że nie ma wrażliwych na koszty implementacji wszystkich algorytmów uczenia się, a zatem podejście oparte na opakowaniu z wykorzystaniem próbkowania jest jedyną opcją. Chociaż dzisiaj jest to z pewnością mniej prawdziwe niż w przeszłości, wiele algorytmów uczenia się (np. C4.5) wciąż nie obsługuje bezpośrednio kosztów w procesie uczenia się.

Drugim powodem korzystania z próbkowania jest to, że wiele mocno wypaczonych zestawów danych jest ogromnych, a rozmiar zestawu szkoleniowego musi zostać zmniejszony, aby nauka była wykonalna. W tym przypadku podpróbkowanie wydaje się rozsądną i prawidłową strategią. W tym artykule nie rozważamy potrzeby zmniejszenia rozmiaru zestawu treningowego. Zwracamy jednak uwagę, że jeśli trzeba odrzucić niektóre dane szkoleniowe, nadal korzystne może być odrzucenie niektórych przykładów klasy większościowej, aby zmniejszyć rozmiar zestawu szkoleniowego do wymaganego rozmiaru, a następnie zastosować koszt wrażliwy algorytm uczenia się, aby zminimalizować ilość odrzuconych danych treningowych.

Ostatnim powodem, który mógł przyczynić się do zastosowania próbkowania zamiast algorytmu uczenia wrażliwego na koszty, jest to, że koszty błędnej klasyfikacji są często nieznane. Nie jest to jednak uzasadniony powód do korzystania z próbkowania w oparciu o algorytm uczenia wrażliwy na koszty, ponieważ analogiczne problemy pojawiają się przy próbkowaniu - jaki powinien być rozkład klas końcowych danych treningowych? Jeżeli te informacje o kosztach nie są znane, miara taka jak powierzchnia pod krzywą ROC może być wykorzystana do pomiaru wydajności klasyfikatora, a oba podejścia mogą następnie empirycznie ustalić właściwy stosunek kosztów do rozkładu klas.

Przeprowadzili także serię eksperymentów, co nie przyniosło jednoznacznego wyniku:

Na podstawie wyników ze wszystkich zestawów danych nie ma ostatecznego zwycięzcy między uczeniem wrażliwym pod względem kosztów, nadpróbkowaniem i podpróbkowaniem

Następnie próbują zrozumieć, które kryteria w zestawach danych mogą wskazywać, która technika jest lepiej dopasowana.

Zauważają również, że SMOTE może przynieść pewne ulepszenia:

Istnieje wiele ulepszeń, które ludzie wprowadzili, aby poprawić skuteczność próbkowania. Niektóre z tych ulepszeń obejmują wprowadzenie nowych przykładów „syntetycznych”, gdy nadpróbkowanie [5 -> SMOTE], usuwanie mniej użytecznych przykładów większościowej klasy, gdy undersampling [11] oraz stosowanie wielu podprób, gdy undersampling, taki jak każdy przykład, jest używany w co najmniej jednym podpróbka [3]. Chociaż techniki te zostały porównane z nadpróbkowaniem i podpróbkowaniem, zasadniczo nie zostały one porównane z algorytmami uczenia wrażliwymi na koszty. Warto byłoby to studiować w przyszłości.


{1} Weiss, Gary M., Kate McCarthy i Bibi Zabar. „Uczenie się z uwzględnieniem kosztów a pobieranie próbek: Który sposób najlepiej radzi sobie z klasami niezrównoważonymi o nierównych kosztach błędów?” DMIN 7 (2007): 35–41. https://scholar.google.com/scholar?cluster=10779872536070567255&hl=pl&as_sdt=0,22 ; https://pdfs.semanticscholar.org/9908/404807bf6b63e05e5345f02bcb23cc739ebd.pdf

Franck Dernoncourt
źródło
1
Podsumowując link: wyniki, na których metoda jest lepsza, są niejednoznaczne i łatwiej jest zastosować zbyt małe / nadmierne próbkowanie. Dobrze?
LazyCat
1
@ LazyCat prawo.
Franck Dernoncourt,
Tak, platforma ma ograniczenia. Ale wiele z nich to także funkcje. Przypuszczam na przykład, że jeśli jedna długa, szczegółowa odpowiedź, taka jak ta, mogłaby odpowiednio odpowiedzieć na dwa pytania, pytania te muszą być duplikatami. A jeśli nie są duplikatami, powinna istnieć możliwość zróżnicowania odpowiedzi w znaczący sposób, aby nie były po prostu wklejane. Jakie działania należy podjąć w tej sprawie? (cc @gung)
whuber
@whuber Drugie pytanie zostało już zamknięte :-)
Franck Dernoncourt
1
Okej - to przekonujący argument!
whuber
6

Kilka odpowiedzi na to zapytanie zawiera już kilka różnych podejść, wszystkie są prawidłowe. Ta sugestia pochodzi z gazety i powiązanego oprogramowania Gary'ego Kinga, wybitnego politologa z Harvardu. Jest współautorem artykułu zatytułowanego Regresja logistyczna w danych o rzadkich zdarzeniach, który zawiera pewne dość przekonujące rozwiązania.

Oto streszczenie:

Badamy dane o rzadkich zdarzeniach, zmienne zależne binarnie z dziesiątkami do tysięcy razy mniej (zdarzenia, takie jak wojny, weta, przypadki aktywizmu politycznego lub infekcje epidemiologiczne) niż zera („nonevent”). W wielu literaturach zmienne te okazały się trudne do wyjaśnienia i przewidzenia, co wydaje się mieć co najmniej dwa źródła. Po pierwsze, popularne procedury statystyczne, takie jak regresja logistyczna, mogą znacznie nie docenić prawdopodobieństwa rzadkich zdarzeń. Zalecamy korekty, które przewyższają istniejące metody i zmieniają szacunki ryzyka bezwzględnego i względnego o tyle, o ile niektóre szacunkowe skutki zgłoszone w literaturze. Po drugie, powszechnie stosowane strategie gromadzenia danych są rażąco nieefektywne w przypadku danych dotyczących rzadkich zdarzeń. Strach przed gromadzeniem danych przy zbyt małej liczbie zdarzeń doprowadził do gromadzenia danych z ogromną liczbą obserwacji, ale stosunkowo niewielką liczbą źle objaśniających zmiennych, takich jak dane dotyczące konfliktów międzynarodowych z ponad ćwierć milionem diad, z których tylko kilka toczą wojnę. Jak się okazuje, istnieją bardziej wydajne projekty próbkowania do dokonywania prawidłowych wniosków, takich jak próbkowanie wszystkich zmiennych zdarzeń (np. Wojen) i niewielka część nonevent (pokoju). Dzięki temu uczeni mogą zaoszczędzić nawet 99% swoich (nie naprawionych) kosztów gromadzenia danych lub zebrać znacznie bardziej znaczące zmienne objaśniające. Zapewniamy metody, które łączą te dwa wyniki, umożliwiając jednoczesne działanie obu rodzajów poprawek, oraz oprogramowanie, które implementuje opracowane metody. oraz źle zmierzone, objaśniające zmienne, takie jak dane dotyczące konfliktów międzynarodowych z ponad ćwierć milionem diad, z których tylko kilka jest w stanie wojny. Jak się okazuje, istnieją bardziej wydajne projekty próbkowania do dokonywania prawidłowych wniosków, takich jak próbkowanie wszystkich zmiennych zdarzeń (np. Wojen) i niewielka część nonevent (pokoju). Dzięki temu uczeni mogą zaoszczędzić nawet 99% swoich (nie naprawionych) kosztów gromadzenia danych lub zebrać znacznie bardziej znaczące zmienne objaśniające. Zapewniamy metody, które łączą te dwa wyniki, umożliwiając jednoczesne działanie obu rodzajów poprawek, oraz oprogramowanie, które implementuje opracowane metody. oraz źle zmierzone, objaśniające zmienne, takie jak dane dotyczące konfliktów międzynarodowych z ponad ćwierć milionem diad, z których tylko kilka jest w stanie wojny. Jak się okazuje, istnieją bardziej wydajne projekty próbkowania do dokonywania prawidłowych wniosków, takich jak próbkowanie wszystkich zmiennych zdarzeń (np. Wojen) i niewielka część nonevent (pokoju). Dzięki temu uczeni mogą zaoszczędzić nawet 99% swoich (nie naprawionych) kosztów gromadzenia danych lub zebrać znacznie bardziej znaczące zmienne objaśniające. Zapewniamy metody, które łączą te dwa wyniki, umożliwiając jednoczesne działanie obu rodzajów poprawek, oraz oprogramowanie, które implementuje opracowane metody. istnieją bardziej wydajne projekty próbkowania do dokonywania prawidłowych wniosków, takich jak próbkowanie wszystkich zmiennych zdarzeń (np. wojen) i niewielka część żadnych zdarzeń (pokoju). Dzięki temu uczeni mogą zaoszczędzić nawet 99% swoich (nie naprawionych) kosztów gromadzenia danych lub zebrać znacznie bardziej znaczące zmienne objaśniające. Zapewniamy metody, które łączą te dwa wyniki, umożliwiając jednoczesne działanie obu rodzajów poprawek, oraz oprogramowanie, które implementuje opracowane metody. istnieją bardziej wydajne projekty próbkowania do dokonywania prawidłowych wniosków, takich jak próbkowanie wszystkich zmiennych zdarzeń (np. wojen) i niewielka część żadnych zdarzeń (pokoju). Dzięki temu uczeni mogą zaoszczędzić nawet 99% swoich (nie naprawionych) kosztów gromadzenia danych lub zebrać znacznie bardziej znaczące zmienne objaśniające. Zapewniamy metody, które łączą te dwa wyniki, umożliwiając jednoczesne działanie obu rodzajów poprawek, oraz oprogramowanie, które implementuje opracowane metody.

Oto link do artykułu ... http://gking.harvard.edu/files/abs/0s-abs.shtml

Mike Hunter
źródło
Dziękuję, jeśli czytasz ten artykuł, czy sugerują coś ważnego poza sugerowanym powyżej niedostatecznym próbkowaniem?
LazyCat,
4
To dobry artykuł, przeczytałem go więcej niż raz! (+1) Myślę, że powinieneś jednak zaznaczyć, że artykuł jest również zainteresowany wnioskami. Dlatego GBM byłby mniej przydatny dla politologa w porównaniu z GLM. Na przykład, jeśli stosowane są metodologie drzewa: „ ... dwa rekurencyjne algorytmy partycjonowania mogą osiągnąć tę samą dokładność prognozowania, ale jednocześnie reprezentują strukturalnie różne relacje regresji, tj. Różne modele, a zatem mogą prowadzić do różnych wniosków na temat wpływu niektórych zmiennych towarzyszących odpowiedzi. ”(Hothorn i in. 2006)
usεr11852 mówi Przywróć Monic
2

Opracowywanie klasyfikatorów dla zbiorów danych z niezrównoważonymi klasami jest częstym problemem w uczeniu maszynowym. W takiej sytuacji metody oparte na gęstości mogą mieć znaczące zalety w stosunku do „tradycyjnych klasyfikatorów”.

Metoda oparta na gęstości szacuje nieznaną gęstość , gdzie jest najbardziej dominującą klasą (w twoim przykładzie ).CC={x:Yi=0}p^(x|yC)CC={x:yi=0}

Po przeszkoleniu oszacowania gęstości można przewidzieć prawdopodobieństwo, że niewidoczny rekord testowy należy do tego oszacowania gęstości lub nie. Jeśli prawdopodobieństwo jest wystarczająco małe, mniejsze niż określony próg (zwykle uzyskiwany w fazie walidacji), to , w przeciwnym razie* y ( x * ) C Y ( x * ) Cxy^(x)Cy^(x)C

Możesz odnieść się do następującego artykułu:

„Obliczalny estymator wtyczek zestawów minimalnej objętości do wykrywania nowości”, C. Park, J. Huang i Y. Ding, Operations Research, 58 (5), 2013.

rodrigo
źródło
2

Jest to rodzaj problemu, w którym wykrywanie anomalii jest użytecznym podejściem. Tak właśnie opisał Rodrigo w swojej odpowiedzi, w którym określasz profil statystyczny swojej klasy treningowej i ustalasz próg prawdopodobieństwa, powyżej którego ustalane są przyszłe pomiary, które nie należą do tej klasy. Oto samouczek wideo , który powinien zacząć. Gdy już to zaabsorbujesz, polecam sprawdzenie Szacowania Gęstości Jądra.

DrMcCleod
źródło