Kiedy powinienem bilansować klasy w zbiorze danych treningowych?


29

Miałem kurs online, w którym dowiedziałem się, że niezrównoważone klasy w danych treningowych mogą prowadzić do problemów, ponieważ algorytmy klasyfikacji są zgodne z regułą większości, ponieważ dają dobre wyniki, jeśli niezrównoważenie jest zbyt duże. W zadaniu należało zrównoważyć dane poprzez niepełne próbkowanie klasy większościowej.

Jednak na tym blogu ktoś twierdzi, że zbalansowane dane są jeszcze gorsze:

https://matloff.wordpress.com/2015/09/29/unbalanced-data-is-a-problem-no-balanced-data-is-worse/

Więc który to jest? Czy powinienem równoważyć dane, czy nie? Czy zależy to od zastosowanego algorytmu, ponieważ niektórzy mogą być w stanie dostosować się do niezrównoważonych proporcji klas? Jeśli tak, to które z nich są wiarygodne w przypadku niezrównoważonych danych?

Odpowiedzi:


28

Intuicyjne rozumowanie zostało wyjaśnione w blogu:

Jeśli naszym celem jest przewidywanie, spowoduje to wyraźne uprzedzenie. Co gorsza, będzie to trwałe odchylenie w tym sensie, że nie będziemy mieli spójnych szacunków w miarę wzrostu wielkości próby.

Prawdopodobnie problem (sztucznie) zrównoważonych danych jest gorszy niż przypadek niezrównoważony.

Zrównoważone dane nadają się do klasyfikacji, ale oczywiście tracisz informacje o częstotliwościach wyglądu, co ma wpływ na same pomiary dokładności, a także na wydajność produkcji.

Załóżmy, że rozpoznajesz ręcznie pisane litery z alfabetu angielskiego (26 liter). Nadmierne zrównoważenie wyglądu każdej litery spowoduje, że każda litera zostanie sklasyfikowana (poprawnie lub nie) w przybliżeniu 1/26, więc klasyfikator zapomni o rzeczywistym rozmieszczeniu liter w oryginalnej próbce. I jest ok, gdy klasyfikator jest w stanie uogólnić i rozpoznać każdą literę z dużą dokładnością .

Ale jeśli dokładność i, co najważniejsze, uogólnienie nie są „tak wysokie” (nie mogę podać ci definicji - możesz to potraktować jako „najgorszy przypadek”) - błędnie sklasyfikowane punkty najprawdopodobniej zostaną równo rozdzielone między wszystkie litery , coś jak:

"A" was misclassified 10 times
"B" was misclassified 10 times
"C" was misclassified 11 times
"D" was misclassified 10 times
...and so on

W przeciwieństwie do bez równoważenia (przy założeniu, że „A” i „C” mają znacznie większe prawdopodobieństwo pojawienia się w tekście)

"A" was misclassified 3 times
"B" was misclassified 14 times
"C" was misclassified 3 times
"D" was misclassified 14 times
...and so on

Tak częste przypadki będą miały mniej błędnych klasyfikacji. To, czy jest dobre, czy nie, zależy od twojego zadania. W przypadku naturalnego rozpoznawania tekstu można argumentować, że litery o wyższych częstotliwościach są bardziej opłacalne, ponieważ zachowałyby semantykę oryginalnego tekstu, przybliżając zadanie rozpoznawania do przewidywania (gdzie semantyka reprezentuje tendencje ). Ale jeśli próbujesz rozpoznać coś takiego jak zrzut ekranu klucza ECDSA (więcej entropii -> mniej przewidywania) - utrzymanie niezrównoważenia danych nie pomogłoby. Więc znowu to zależy.

Najważniejsze rozróżnienie polega na tym, że samo oszacowanie dokładności staje się tendencyjne (jak widać na przykładzie zrównoważonego alfabetu), więc nie wiesz, w jaki sposób zachowanie modelu wpływa na najrzadsze lub najczęstsze punkty.

PS Zawsze możesz najpierw śledzić wyniki klasyfikacji niezrównoważonej za pomocą wskaźników Precyzja / Przywołanie i zdecydować, czy chcesz dodać równoważenie, czy nie.


EDYCJA : Istnieje dodatkowe zamieszanie, które polega na teorii szacunków dokładnie na różnicy między średnią próby a średnią populacji. Na przykład możesz znać (prawdopodobnie) faktyczny rozkład liter angielskich w alfabecie , ale twoja próbka (zestaw szkoleniowy) nie jest wystarczająco duża, aby oszacować ją poprawnie (z ). Aby więc skompensować , czasami zaleca się ponowne zrównoważenie klas zgodnie z samą populacją lub parametrami znanymi z większej próbyp(xi|θ)p(xi|θ^)θ i - θ jaθ^iθi(a zatem lepszy estymator). Jednak w praktyce nie ma gwarancji, że „większa próbka” jest identycznie dystrybuowana ze względu na ryzyko uzyskania stronniczych danych na każdym etapie (powiedzmy, że angielskie litery zebrane z literatury technicznej vs. fikcja vs. cała biblioteka), więc równoważenie może nadal być szkodliwe.

Ta odpowiedź powinna również wyjaśnić kryteria stosowalności bilansowania:

Problem nierównowagi klasowej jest spowodowany brakiem wystarczającej liczby wzorców należących do klasy mniejszościowej, a nie stosunkiem samych pozytywnych i negatywnych wzorców. Zasadniczo, jeśli masz wystarczającą ilość danych, nie pojawia się „problem braku równowagi klas”

Podsumowując, sztuczne równoważenie rzadko jest przydatne, jeśli zestaw treningowy jest wystarczająco duży. Brak danych statystycznych z większej identycznie rozmieszczonej próbki również sugeruje, że nie ma potrzeby sztucznego równoważenia (szczególnie do prognozowania), w przeciwnym razie jakość estymatora jest tak dobra, jak „prawdopodobieństwo spotkania dinozaura”:

Jakie jest prawdopodobieństwo spotkania dinozaura na ulicy?

1/2 albo spotkasz dinozaura albo nie spotkasz dinozaura


5
Myślę, że oprócz wyjaśnienia tego problemu, ważnym odejściem od tej odpowiedzi jest to, że najpierw należy spróbować niezrównoważić i sprawdzić jego wyniki, a tylko w razie potrzeby dokonać wyważenia i sprawdzić jego wynik. +1
Zelphir Kaltstahl

Innymi słowy, przy równomiernie rozłożonych klasach do podzbioru szkolenia model straci swoją dokładność w niewidzialnych danych, prawda? Ale w przeciwnym przypadku, gdy spróbujesz losowo wyodrębnić wpisy zestawu danych dla podzbiorów treningu / testowania, czy Twój klasyfikator będzie działał lepiej?
Christos K.,

@ChristosK. Jak wielu stwierdziło, gdy postrzegasz problem jako klasyfikację, trudno jest uzasadnić prognozowanie. W każdym razie, jeśli usuniesz błąd systematyczny (próbka „losowo”) - potrzebujesz większej próbki, aby poprawić wydajność. Po prostu „zwykle” próbka jest wystarczająco duża, aby zachować semantykę, więc nadmierne wyważenie tylko boli i działa jak regulujący młot, który „spłaszcza” wszystko bez odpowiedniego rozważenia. Ponadto, jak sugeruje metafora dinozaurów, „zrównoważony” nie oznacza „równy” - robisz właściwe równoważenie tylko wtedy, gdy wiesz, że niektóre prawdopodobieństwa są błędnie przedstawione w „losowej” próbce.
dk14,

1
@ChristosK. Dziękuję za wyjaśnienia. To nie to samo, co miałem na myśli, ale podejście jest bardzo podobne. Zwykle zaleca się stosowanie k-fold, gdy próbka początkowa jest „trochę mała”. Nie jestem pewien, ale składanie i tak nie powinno boleć - po prostu zajmuje więcej biegów, a im mniej zależy Ci na przewidywaniu, tym mniej zależy ci na uogólnieniu / wydajności tak tautologicznej, jak się wydaje :). Ale ogólnie - k-krotnie oznacza zasadniczo mniej stronniczości.
dk14,

1
@ChristosK. Aha, i jako ostrzeżenie, stosunek spam / nie spam może być niestacjonarną zmienną losową samą w sobie. Z tymi wszystkimi „fałszywymi wiadomościami”, „rosyjskimi trollami” i innymi rzeczami uważałbym na takie założenia - stosunek może być również stronniczy. Możesz najpierw oszacować PrecisionRecall na swoich klasyfikatorach, jeśli coś jest niedopróbkowane - wolę gromadzić / generować (?) Więcej danych.
dk14,

17

Zgodnie z komentarzem @ kjetil-b-halvorsen, szybkie przyjęcie uczenia maszynowego pomieszało naukowców w kwestii przewidywania z klasyfikacją. Jak opisałem tutaj bardziej szczegółowo , klasyfikacja jest właściwa tylko w nielicznych przypadkach. Gdy wynik jest rzadki (lub zbyt powszechny), prawdopodobieństwa są wszystkim, ponieważ w takim przypadku można tylko rozsądnie mówić o tendencjach , a nie o przewidywaniu poszczególnych zdarzeń.

W statystykach dowiedzieliśmy się już dawno, że każda metoda, która wymaga wykluczenia niektórych danych, jest wysoce podejrzana. Cel równoważenia wyników jest więc niewłaściwy. Przewidywanie tendencji (prawdopodobieństw) nie wymaga tego. Po oszacowaniu prawdopodobieństwa możesz podjąć optymalną decyzję, stosując funkcję użyteczności / kosztu / straty do przewidywanego ryzyka.


1

Zależy od tego, co chcesz osiągnąć z klasyfikacji?

Powiedzmy, że to rak v / s non rak, to wykrycie raka jest niezbędne. Ponieważ jednak nienowotworowy będzie stanowił większość twoich danych, klasyfikator może zasadniczo wysłać wszystkie przypadki do klasy niebędącej rakiem i uzyskać bardzo wysoką dokładność. Ale nie możemy sobie na to pozwolić, więc zasadniczo zmniejszamy liczbę przypadków nienowotworowych, zasadniczo przesuwając granicę decyzji z regionu raka do regionu nienowotworowego.

Nawet w przypadkach użycia, w których dokładność jest naszym jedynym celem, równoważenie może być niezbędne, jeśli oczekuje się, że bilans czasu testu będzie inny niż czas pociągu.

Na przykład powiedz, że chcesz sklasyfikować mango i pomarańcze, masz zestaw danych szkoleniowych z 900 mango i 30 pomarańczy, ale spodziewasz się, że wdrożysz go na rynku z równymi mango i pomarańczami, a najlepiej, jeśli powinieneś próbować w oczekiwanym stosunku próbkowania, aby zmaksymalizować precyzja.


Właśnie to zrozumiałem z wykładów, które miałem. Nie rozumiem jednak, kiedy równoważenie może być złe, jak sugeruje ten post na blogu. Dlaczego zrównoważenie miałoby być takie złe, gdyby dla każdej klasy pozostały wystarczające punkty danych?
Zelphir Kaltstahl

Przepraszamy, ale w twojej analogii, co ma związek z dystrybucją owoców na rynku z dokładnością modelu? Nauczyłeś się oddzielać mango od pomarańczy, czy nie. Innymi słowy, powinieneś być w stanie wdrożyć ten sam model na rynku wyłącznie pomarańczowym lub wyłącznie z mango.
Fernando

3
Ale problemem z przykładem raka jest postrzeganie go jako klasyfikacji , którą należy traktować jako oszacowanie ryzyka . Potem znika pozorny problem z niezbalansowanymi klasami, patrz stats.stackexchange.com/questions/127042/…
kjetil b halvorsen

1

Gdy Twoje dane są zrównoważone, możesz sprawdzić dokładność pomiaru. Ale gdy taka sytuacja nie jest zrównoważona, twoja dokładność nie jest spójna dla różnych iteracji. Musisz skoncentrować więcej wskaźników, takich jak Precyzja (PPR), Przywołanie (czułość). Te dwa wskaźniki powinny być zrównoważone podczas porównywania. Powinieneś także sprawdzić wynik F1, który jest harmoniczną średnią dokładności i przywołania. Dotyczy to wszystkich algorytmów uczenia maszynowego

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.