W tym artykule omówimy w jaki sposób moduł SMOTE pomaga zwiększyć liczbę niedoreprezentowanych przypadków w zbiorze danych modelu uczenia maszynowego. SMOTE jest najlepszą metodą, która pozwala na zwiększenie rzadkich przypadków zamiast powielania poprzednich.
Kiedy masz niezrównoważony zbiór danych, możesz połączyć model z modułem SMOTE. Może istnieć wiele powodów dla niezrównoważonego zbioru danych. Być może kategoria docelowa ma unikalny zestaw danych w populacji, lub dane są trudne do zebrania. Możesz skorzystać z pomocy SMOTE, aby przeanalizować niedoreprezentowaną klasę. Dane wyjściowe z modułu będą zawierały zarówno oryginalne, jak i dodatkowe próbki. Te nowe próbki są syntetycznymi próbkami mniejszości. Należy zdefiniować liczbę tych syntetycznych próbek przed rozpoczęciem pracy z techniką.

Co to są niezrównoważone dane?

Kiedy klasyfikacja danych nie jest równa, można to nazwać niezrównoważonymi danymi. Jest to zadanie klasyfikacyjne i powoduje różne problemy na wyjściu modelu. Na przykład, masz 100 przypadków w binarnym problemie klasyfikacyjnym. Klasa 1 zawiera 80 oznaczonych instancji. Z drugiej strony, pozostała oznaczona próbka będzie w klasie-2. Będzie to prosty przykład niezrównoważonego zbioru danych. Stosunek instancji klasy 1 i klasy 2 wynosiłby 4:1.
Problem nierównowagi klas jest bardzo powszechny, niezależnie od tego, czy mówimy o rzeczywistych zbiorach danych testowych, czy o konkursie Kaggle. Problemy z klasyfikacją w świecie rzeczywistym będą zawierały pewien poziom nierównowagi klasyfikacji. Dzieje się tak zazwyczaj wtedy, gdy nie ma żadnych odpowiednich instancji danych, które pasują do jakiejś klasy. W związku z tym, istotne jest, aby wybrać właściwą metrykę wyceny modelu. Jeśli model ma niezrównoważony zbiór danych, twój wynik będzie bezużyteczny. Jeśli jednak rozwiążesz problem z prawdziwego życia za pomocą tego modelu, wynik będzie stratą.
W różnych sytuacjach, nierównowaga klas zawsze będzie występować. Dobrym przykładem jest, gdy rozważasz zbiór danych transakcji oszukańczych i nie oszukańczych. Znajdziesz mniej transakcji oszukańczych niż transakcji nie oszukańczych. To jest miejsce, w którym znajdziesz problemy.

Co to jest SMOTE?

SMOTE jest techniką, którą możesz wykorzystać do nadpróbkowania danych. Ta technika tworzy nowe syntetyki zamiast nadpróbkowania przez zastąpienie. SMOTE wprowadza syntetyczne przykłady w segmentach linii dla nadpróbkowania próbek klas mniejszościowych. Łączy ona wszystkie k klas mniejszości, które są bliskimi sąsiadami. Wybór sąsiadów z k najbliższych sąsiadów jest losowy. Liczba ta zależy od wielkości nadpróbkowania, którego potrzebuje model.
Podstawową funkcją SMOTE jest konstruowanie klas mniejszościowych. Istnieje prosty algorytm tworzenia tych klas. Jak być może wiesz, rozwój powtarzających się instancji lub nadpróbkowanie może spowodować przepełnienie. Ponadto, granica decyzyjna staje się jeszcze ciaśniejsza. Możesz rozwiązać ten problem poprzez generowanie podobnych próbek innych niż powtarzanie ich wszystkich. SMOTE generuje nowo skonstruowane próbki, które mają inne cechy niż poprzednie próbki. W związku z tym, granica decyzji stanie się bardziej miękka. Pomoże to algorytmowi oszacować dokładną hipotezę. Poniżej znajdziesz kilka korzyści płynących z SMOTE:
– Informacje nie zostaną utracone.
– Ta technika jest prosta i można ją łatwo zinterpretować i zaimplementować w modelu.
– Poprawia overfitting jako syntetyczne przykłady. Pomoże to wygenerować nowe instancje zamiast ich powielania.

Jak rozwiązać problem nierównowagi klas za pomocą SMOTE?

SMOTE syntetyzuje nowe mniejszościowe instancje podobne do rzeczywistych mniejszościowych instancji. Wyobraźmy sobie, że istnieje linia pomiędzy istniejącymi instancjami. SMOTE rysuje te linie, aby stworzyć syntetyczne i nowe instancje mniejszości na tych liniach.
library(smotefamily)
dat_plot = SMOTE(dat[,2:4], # wartości cech
as.numeric(dat[,6]), # etykiety klas
K = 6, dup_size =0) # parametry funkcji
Po zakończeniu procesu syntezy nowych instancji mniejszości, na wyjściu pojawi się mniejsza nierównowaga danych. Model będzie dodawał nowe instancje z pomocą SMOTE wyrównującego klasy.

Parametry funkcji SMOTE

Dup_size i K są dwoma parametrami funkcji SMOTE (). Jeśli chcesz zrozumieć Dup_size i K, musisz poznać mechanizm działania SMOTE (). SMOTE () będzie działać przez perspektywę istniejących instancji i generować nowe losowo. Funkcja utworzy nową instancję w pewnej odległości od ich sąsiedniej instancji. Jednak nadal nie jest jasne, w jaki sposób SMOTE () rozważa swoich sąsiadów dla każdej mniejszościowej instancji, którą tworzą.
– Funkcja rozważy najbliższego sąsiada przy K = 1.
– Funkcja rozważy najbliższych i następnych sąsiadów przy K = 2.
Normalnie SMOTE () będzie pętli przez oryginalną instancję mniejszości. Podczas gdy iteracja pętli jest pojedynczą instancją, model utworzy nową instancję między oryginalną instancją a sąsiadem. Parametr dup_size wskazuje, ile razy funkcja SMOTE będzie zapętlać oryginalną instancję. Na przykład, przy dup_size = 1, model zsyntetyzuje tylko cztery nowe punkty danych i tak dalej.

Wnioski

Podczas tworzenia modelu predykcyjnego w uczeniu maszynowym, możesz doświadczyć niezrównoważonych zestawów danych. Te zbiory danych mogą wpłynąć na wynik modelu. Możesz rozwiązać ten problem poprzez nadpróbkowanie danych mniejszościowych. Zamiast duplikować dane, wykorzystaj technikę SMOTE i stwórz syntetyczne dane do nadpróbkowania. Poniżej znajdziesz kilka odmian SMOTE:
– Borderline-SMOTE
– SMOTE-NC
– SMOTE
– ADASYN
– SVM-SMOTE