Oversampling i undersampling w analizie danych
W statystyce Oversampling i undersampling w analizie danych to techniki stosowane w celu dostosowania rozkładu klas w zbiorze danych (tj. stosunku między różnymi reprezentowanymi klasami/kategoriami). Terminy te są używane zarówno w doborze statystycznym, metodologii projektowania ankiet, jak iw uczeniu maszynowym .
Oversampling i undersampling to przeciwstawne i mniej więcej równoważne techniki. Istnieją również bardziej złożone techniki nadpróbkowania, w tym tworzenie sztucznych punktów danych za pomocą algorytmów, takich jak syntetyczna technika nadpróbkowania mniejszości.
Motywacja do oversamplingu i undersamplingu
Zarówno nadpróbkowanie, jak i podpróbkowanie polegają na wprowadzeniu błędu polegającego na wybraniu większej liczby próbek z jednej klasy niż z drugiej, aby zrekompensować brak równowagi, który albo już występuje w danych, albo może się rozwinąć, jeśli pobrano czysto losową próbkę. Nierównowaga danych może mieć następujące typy:
- Niedostateczna reprezentacja klasy w jednej lub kilku ważnych zmiennych predykcyjnych. Załóżmy, że aby odpowiedzieć na pytanie o dyskryminację ze względu na płeć, mamy dane ankietowe dotyczące wynagrodzeń w określonej dziedzinie, np. oprogramowanie komputerowe. Wiadomo, że kobiety są znacznie niedoreprezentowane w losowej próbie inżynierów oprogramowania, co byłoby ważne przy dostosowaniu do innych zmiennych, takich jak lata zatrudnienia i obecny poziom stażu pracy. Załóżmy, że tylko 20% inżynierów oprogramowania to kobiety, co oznacza, że mężczyźni są 4 razy częściej niż kobiety. Gdybyśmy projektowali ankietę w celu zebrania danych, przebadalibyśmy 4 razy więcej kobiet niż mężczyzn, tak aby w ostatecznej próbie obie płcie były równo reprezentowane. (Zobacz też próbkowanie warstwowe ).
- Niedostateczna reprezentacja jednej klasy w zmiennej wynikowej (zależnej). Załóżmy, że chcemy przewidzieć, na podstawie dużego zbioru danych klinicznych, u których pacjentów prawdopodobnie rozwinie się określona choroba (np. cukrzyca). Załóżmy jednak, że tylko u 10% pacjentów rozwija się choroba. Załóżmy, że mamy duży istniejący zestaw danych. Możemy wtedy wybrać 9-krotność liczby pacjentów, u których choroba nie rozwinęła się na każdego pacjenta, u którego nastąpił rozwój.
Nadpróbkowanie jest na ogół stosowane częściej niż podpróbkowanie, zwłaszcza gdy szczegółowe dane nie zostały jeszcze zebrane w drodze ankiety, wywiadu lub w inny sposób. Podpróbkowanie jest stosowane znacznie rzadziej. Nadmiar zebranych już danych stał się problemem dopiero w dobie „Big Data”, a powody stosowania undersamplingu są głównie praktyczne i związane z kosztami zasobów. W szczególności, chociaż do wyciągnięcia prawidłowych wniosków statystycznych potrzebna jest odpowiednio duża próba, dane muszą zostać oczyszczone zanim będzie można go użyć. Oczyszczanie zwykle obejmuje znaczący element ludzki i jest zwykle specyficzne dla zbioru danych i problemu analitycznego, a zatem wymaga czasu i pieniędzy. Na przykład:
- Eksperci dziedzinowi zasugerują specyficzne dla zbioru danych sposoby walidacji obejmujące nie tylko kontrole wewnątrz zmiennych (wartości dopuszczalne, maksymalne i minimalne możliwe ważne wartości itp.), ale także kontrole między zmiennymi. Na przykład poszczególne składniki różnicowej liczby białych krwinek muszą sumować się do 100, ponieważ każdy stanowi procent całości.
- Dane osadzone w tekście narracyjnym (np. transkrypty wywiadów) muszą być ręcznie kodowane do postaci zmiennych dyskretnych, z którymi może sobie poradzić pakiet statystyczny lub do uczenia maszynowego. Im więcej danych, tym większy wysiłek związany z kodowaniem. (Czasami kodowanie można wykonać za pomocą oprogramowania, ale często ktoś musi napisać niestandardowy, jednorazowy program, a dane wyjściowe programu muszą zostać przetestowane pod kątem dokładności pod względem wyników fałszywie dodatnich i fałszywie ujemnych).
Z tych powodów zwykle oczyszcza się tylko tyle danych, ile jest potrzebne do udzielenia odpowiedzi na pytanie z rozsądną pewnością statystyczną (patrz Wielkość próby), ale nie więcej.
Techniki nadpróbkowania w problemach klasyfikacji
Losowe nadpróbkowanie
Losowe nadpróbkowanie polega na uzupełnieniu danych treningowych wieloma kopiami niektórych klas mniejszościowych. Nadpróbkowanie można wykonać więcej niż raz (2x, 3x, 5x, 10x itd.). Jest to jedna z najwcześniej proponowanych metod, która również okazała się niezawodna. Zamiast powielać każdą próbkę w klasie mniejszości, niektóre z nich można wybrać losowo z zamianą.
SMUTNE
Dostępnych jest wiele metod nadpróbkowania zbioru danych używanych w typowym problemie klasyfikacyjnym (wykorzystanie algorytmu klasyfikacji do sklasyfikowania zestawu obrazów, biorąc pod uwagę oznaczony zestaw uczący obrazów). Najpopularniejsza technika to SMOTE: Synthetic Minority Over-sampling Technique. Jednak wykazano, że ta technika daje modele słabo skalibrowane, z przeszacowanym prawdopodobieństwem przynależności do klasy mniejszości.
Aby zilustrować, jak działa ta technika, rozważmy niektóre dane treningowe, które mają s próbek i f cech w przestrzeni cech danych. Zauważ, że te funkcje, dla uproszczenia, są ciągłe. Jako przykład rozważ zbiór danych ptaków do klasyfikacji. Przestrzeń cech dla klasy mniejszości, dla której chcemy zastosować nadpróbkowanie, może obejmować długość dzioba, rozpiętość skrzydeł i wagę (wszystkie ciągłe). Aby następnie dokonać nadpróbkowania, pobierz próbkę ze zbioru danych i rozważ jego k najbliższych sąsiadów (w przestrzeni cech). Aby utworzyć syntetyczny punkt danych, weź wektor między jednym z tych k sąsiedzi i aktualny punkt danych. Pomnóż ten wektor przez losową liczbę x , która leży między 0 a 1. Dodaj to do bieżącego punktu danych, aby utworzyć nowy, syntetyczny punkt danych.
Od czasu jej zaproponowania do metody SMOTE wprowadzono wiele modyfikacji i rozszerzeń.
ADASYN
Adaptacyjne podejście do próbkowania syntetycznego, czyli algorytm ADASYN, opiera się na metodologii SMOTE, przesuwając znaczenie granicy klasyfikacji na te klasy mniejszości, które są trudne. ADASYN wykorzystuje rozkład ważony dla różnych przykładów klas mniejszościowych zgodnie z ich poziomem trudności w nauce, gdzie generowane są bardziej syntetyczne dane dla przykładów klas mniejszościowych, które są trudniejsze do nauczenia.
Powiększenie
Rozszerzanie danych w analizie danych to techniki stosowane w celu zwiększenia ilości danych poprzez dodanie nieznacznie zmodyfikowanych kopii już istniejących danych lub nowo utworzonych danych syntetycznych z istniejących danych. Działa jako środek regulujący i pomaga zmniejszyć nadmierne dopasowanie podczas uczenia modelu uczenia maszynowego. (Patrz: Powiększanie danych )
Techniki undersamplingu dla problemów klasyfikacyjnych
Losowe podpróbkowanie
Losowo usuń próbki z klasy większościowej, z lub bez wymiany. Jest to jedna z najwcześniejszych technik stosowanych w celu złagodzenia nierównowagi w zbiorze danych, jednak może zwiększyć wariancję klasyfikatora i bardzo prawdopodobne jest odrzucenie użytecznych lub ważnych próbek.
Grupa
Centroidy klastrów to metoda, która zastępuje klaster próbek przez centroid klastra algorytmu K-średnich, w którym liczba klastrów jest ustalana przez poziom niedopróbkowania.
Linki Tomka
Łącza Tomka usuwają niechciane nakładanie się klas, gdzie łącza klas większościowych są usuwane, dopóki wszystkie pary najbliższych sąsiadów w minimalnej odległości nie będą tej samej klasy. parę instancji , x i to odległość między i , a następnie para nazywa się łączem Tomka, jeśli nie ma takiej że lub . W ten sposób, jeśli dwie instancje tworzą łącze Tomka, to albo jedna z tych instancji jest szumem, albo obie są blisko granicy. W ten sposób można użyć linków Tomka, aby wyczyścić nakładanie się klas. Usuwając nakładające się przykłady, można ustanowić dobrze zdefiniowane klastry w zbiorze uczącym i doprowadzić do poprawy wydajności klasyfikacji.
Niedopróbkowanie z uczeniem zespołowym
Niedawne badanie pokazuje, że połączenie niedopróbkowania z uczeniem zespołowym może osiągnąć lepsze wyniki, patrz IFME: filtrowanie informacji na podstawie wielu przykładów z niedopróbkowaniem w środowisku biblioteki cyfrowej.
Techniki rozwiązywania problemów z regresją
Chociaż techniki próbkowania zostały opracowane głównie do zadań klasyfikacyjnych, coraz więcej uwagi poświęca się problemowi niezrównoważonej regresji. Dostępne są adaptacje popularnych strategii, w tym undersampling, oversampling i SMOTE. Techniki próbkowania zostały również zbadane w kontekście przewidywania liczbowego w danych zorientowanych na zależności, takich jak prognozowanie szeregów czasowych i prognozowanie czasoprzestrzenne.
Dodatkowe techniki
Możliwe jest łączenie technik oversamplingu i undersamplingu w strategię hybrydową. Typowe przykłady to linki SMOTE i Tomek lub SMOTE i Edited Nearest Neighbors (ENN). Dodatkowe sposoby uczenia się na niezrównoważonych zbiorach danych obejmują ważenie instancji szkoleniowych, wprowadzanie różnych kosztów błędnej klasyfikacji dla pozytywnych i negatywnych przykładów oraz ładowanie początkowe.
Implementacje
- Różnorodne techniki ponownego próbkowania danych są zaimplementowane w pakiecie niezbalansowanym do nauki zgodnym z biblioteką Pythona scikit-learn . Techniki ponownego próbkowania są realizowane w czterech różnych kategoriach: niedopróbkowanie klasy większościowej, nadpróbkowanie klasy mniejszościowej, łączenie nadpróbkowania i niedoboru próby oraz próbkowanie zespołowe.
- Implementacja w Pythonie 85 technik nadpróbkowania mniejszościowego z funkcjami wyboru modelu jest dostępna w pakiecie smote-variants.
Zobacz też
- Próbkowanie (statystyki)
- Powiększanie danych
- Podpróbkowanie (w przetwarzaniu sygnału)
- Chawla, Nitesh V. (2010) Eksploracja danych dla niezrównoważonych zbiorów danych: przegląd doi : 10.1007/978-0-387-09823-4_45 W: Maimon, Oded; Rokach, Lior (red.) Data Mining and Knowledge Discovery Handbook , Springer ISBN 978-0-387-09823-4 (strony 875–886)
- Lemaître, G. Nogueira, F. Aridas, Ch.K. (2017) Niezrównoważone uczenie się: zestaw narzędzi w języku Python do walki z przekleństwem niezrównoważonych zestawów danych w uczeniu maszynowym , Journal of Machine Learning Research, tom. 18, nie. 17, 2017, s. 1–5.