Opinie na temat nadpróbkowania w ogóle, a zwłaszcza algorytmu SMOTE [zamknięte]

18

Jakie jest Twoje zdanie na temat nadpróbkowania w klasyfikacji ogólnie, aw szczególności algorytmu SMOTE? Dlaczego nie stosowalibyśmy po prostu kosztu / kary w celu skorygowania o brak równowagi w danych klasy i wszelkie niezrównoważone koszty błędów? Dla moich celów dokładność prognoz do przyszłego zestawu jednostek eksperymentalnych jest ostateczną miarą.

W celach informacyjnych papier SMOTE: http://www.jair.org/papers/paper953.html

Dave Cummins
źródło
1
Jednym z problemów z nadpróbkowaniem klasy mniejszości w niezrównoważonym zbiorze danych jest to, że w końcu uczyłbyś się zbyt wielu szczegółów z kilku przykładów, a to nie uogólniałoby się dobrze. SMOTE ma nauczyć się topologicznych właściwości sąsiedztwa tych punktów w klasie mniejszościowej, więc mniej prawdopodobne jest, że się przesadzą.
horaceT
2
To świetny temat na pytanie, ale czy możesz go bardziej skoncentrować? "Jaka jest Twoja opinia?" zachęca do niekończących się dyskusji, ale zwykle skupiamy się bardziej na formacie pytania / odpowiedzi.
Sycorax mówi: Przywróć Monikę

Odpowiedzi:

19

{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 stosunek kosztów 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 usuwa 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 próbkowania, warto zapytać, dlaczego ktoś miałby go używać zamiast algorytmu uczenia wrażliwego na koszty do radzenia sobie z danymi 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 stosowania próbkowania w stosunku do algorytmu uczenia wrażliwego na koszty, ponieważ analogiczne zagadnienie pojawia się przy próbkowaniu - jaki powinien być rozkład klas końcowych danych treningowych? Jeżeli te informacje o kosztach nie są znane, do pomiaru wydajności klasyfikatora można zastosować miarę, taką jak powierzchnia pod krzywą ROC, a oba podejścia mogłyby 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
2
Kiedy mówisz „algorytm uczenia wrażliwego na koszty”, czy mój mózg powinien pomyśleć „karać klasy o wysokiej częstotliwości występowania i być może przypisywać większą wagę klasom o niskiej częstotliwości”? Czy ta koncepcja jest równoważna przypisywaniu wag klas?
Jarad