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!
źródło
Odpowiedzi:
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.
źródło
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.
źródło
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:
źródło
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ę .
źródło