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.
52
Odpowiedzi:
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.
źródło
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.)
źródło
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:
Przeprowadzili także serię eksperymentów, co nie przyniosło jednoznacznego wyniku:
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:
{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
źródło
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:
Oto link do artykułu ... http://gking.harvard.edu/files/abs/0s-abs.shtml
źródło
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|y∈C) C C={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 * ) ∈ Cx∗ y^(x∗)∉C y^(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.
źródło
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.
źródło