Udostępnij za pośrednictwem


SMOTE

Ważne

Obsługa programu Machine Learning Studio (wersja klasyczna) zakończy się 31 sierpnia 2024 r. Zalecamy przejście do usługi Azure Machine Learning przed tym terminem.

Od 1 grudnia 2021 r. nie będzie można tworzyć nowych zasobów programu Machine Learning Studio (wersja klasyczna). Do 31 sierpnia 2024 r. można będzie nadal korzystać z istniejących zasobów programu Machine Learning Studio (wersja klasyczna).

Dokumentacja programu ML Studio (wersja klasyczna) jest wycofywana i może nie być aktualizowana w przyszłości.

Zwiększa liczbę przykładów niskiej liczby przypadków w zestawie danych przy użyciu syntetyczną oversampling

Kategoria: Przekształcanie/manipulowanie danymi

Uwaga

Dotyczy: Machine Learning Studio (wersja klasyczna)

Podobne moduły przeciągania i upuszczania są dostępne w Azure Machine Learning projektanta.

Omówienie modułu

W tym artykule opisano sposób użycia modułu SMOTE w programie Machine Learning Studio (wersja klasyczna) w celu zwiększenia liczby nieobecnych przypadków w zestawie danych używanym do uczenia maszynowego. SMOTE to lepszy sposób na zwiększenie liczby rzadkich przypadków niż po prostu duplikowanie istniejących przypadków.

Moduł SMOTE można połączyć z zestawem danych, który jest niezrównoważony. Istnieje wiele powodów, dla których zestaw danych może być niezrównoważony: ukierunkowana kategoria może być bardzo rzadko w populacji lub dane mogą być po prostu trudne do zebrania. Zwykle smote używa się, gdy klasa , którą chcesz analizować, jest reprezentowana w niedomiotach.

Moduł zwraca zestaw danych zawierający oryginalne próbki oraz dodatkową liczbę próbek syntetycznych w zależności od wybranej wartości procentowej.

Więcej informacji na temat SMOTE

SMOTE to skrót od Synthetic Wytróbkowanie techniki oversamplinga. Jest to statystyczna technika zwiększania liczby przypadków w zestawie danych w zrównoważony sposób. Moduł działa przez wygenerowanie nowych wystąpień z istniejących przypadków wywłaszczych, które należy podać jako dane wejściowe. Ta implementacja smote nie zmienia liczby większości przypadków.

Nowe wystąpienia nie są tylko kopiami istniejących przypadków wywłaszczych; Zamiast tego algorytm pobiera próbki przestrzeni cech dla każdej klasy docelowej i jej najbliższych sąsiadów i generuje nowe przykłady, które łączą cechy przypadku docelowego z cechami swoich sąsiadów. Takie podejście zwiększa możliwości funkcji dostępnych dla każdej klasy i sprawia, że próbki są bardziej ogólne.

SmOTE przyjmuje cały zestaw danych jako dane wejściowe, ale zwiększa wartość procentową tylko przypadków wywłaściwych. Załóżmy na przykład, że masz niezrównoważony zestaw danych, w którym tylko 1% przypadków ma wartość docelową A (klasę zasyłania), a 99% przypadków ma wartość B. Aby zwiększyć wartość procentową przypadków zwęgniających do dwukrotnie poprzednich wartości procentowych, należy wprowadzić wartość 200 dla wartości procentowej SMOTE we właściwościach modułu.

Przykłady

Zalecamy wypróbowanie narzędzia SMOTE z małym zestawem danych, aby zobaczyć, jak działa. W poniższym przykładzie użyto zestawu danych Donation (Donation) dostępnego w Machine Learning Studio (klasycznej).

Jeśli dodasz zestaw danych do eksperymentu i klikniesz pozycję Visualize (Wizualizacja) w danych wyjściowych zestawu danych, zobaczysz, że z 748 wierszy lub przypadków w zestawie danych istnieje 570 przypadków (76%) z klasy 0 i 178 przypadków (24%) z klasy 1. Mimo że nie jest to bardzo niezrównoważone, klasa 1 reprezentuje osoby, które podały krwi, dlatego te wiersze zawierają obszar cech, który chcesz modelować.

Aby zwiększyć liczbę przypadków, można ustawić wartość procentową SMOTE przy użyciu wielokrotności 100 w następujący sposób:

Klasa 0 Klasa 1 suma
Oryginalny zestaw danych

(odpowiednik procentu SMOTE) = 0)
570

76%
178

24%
748
Procent SMOTE = 100 570

62%
356

38%
926
Procent SMOTE = 200 r. 570

52%
534

48%
1104
Procent SMOTE = 300 (300) 570

44%
712

56%
1282

Ostrzeżenie

Zwiększenie liczby przypadków przy użyciu smote nie gwarantuje tworzenia dokładniejszych modeli. Spróbuj poeksperymentować z różnymi wartościami procentowymi, różnymi zestawami cech i różnymi liczbami najbliższych sąsiadów, aby zobaczyć, jak dodawanie przypadków wpływa na model.

Jak skonfigurować smote

  1. Dodaj moduł SMOTE do eksperymentu. Moduł można znaleźć w obszarze Moduły przekształcania danych w kategorii manipulowania.

  2. Połączenie zestaw danych, który chcesz zwiększyć. Jeśli chcesz określić przestrzeń funkcji do tworzenia nowych przypadków, używając tylko określonych kolumn lub wykluczając niektóre z nich, użyj modułu Select Columns in Dataset (Wybieranie kolumn w zestawie danych), aby odizolować kolumny, które mają być wykorzystywane przed użyciem smoteki.

    W przeciwnym razie tworzenie nowych przypadków przy użyciu narzędzia SMOTE jest oparte na wszystkich kolumnach, które podano jako dane wejściowe.

  3. Upewnij się, że kolumna zawierająca etykietę lub klasę docelową jest oznaczona jako taka.

    Jeśli nie ma kolumny label, użyj modułu Edytowanie metadanych, aby wybrać kolumnę zawierającą etykiety klas, a następnie wybierz pozycję Etykieta z listy rozwijanej Pola.

  4. Moduł SMOTE automatycznie identyfikuje klasę w kolumnie label, a następnie pobiera wszystkie przykłady dla klasy wytłaniania.

  5. W opcji procentowej SMOTE wpisz liczbę całościową, która wskazuje docelowy procent przypadków wywłaszczych w wyjściowym zestawie danych. Na przykład:

    • Wpisz 0 (%). Moduł SMOTE zwraca dokładnie ten sam zestaw danych, który został podany jako dane wejściowe, nie dodając żadnych nowych przypadków zajścia. W tym zestawie danych proporcja klas nie zmieniła się.

    • Wpisz 100 (%). Moduł SMOTE generuje nowe przypadki wywłaszczynia, dodając tę samą liczbę przypadków wywłaszczych, które były w oryginalnym zestawie danych. Ponieważ SMOTE nie zwiększa liczby przypadków większości, proporcja przypadków każdej klasy zmieniła się.

    • Wpisz 200 (%). W tym module podwaja się wartość procentową przypadków w porównaniu z oryginalnym zestawem danych. Nie powoduje to sytuacji, w których jest dwa razy więcej przypadków narodowych niż wcześniej. Zamiast tego rozmiar zestawu danych jest zwiększany w taki sposób, że liczba przypadków większości pozostaje taka sama, a liczba przypadków odsetek jest zwiększana do momentu, aż będzie odpowiadać żądanej wartości procentowej.

    Uwaga

    Użyj tylko wielokrotności 100 jako wartości procentowej SMOTE.

  6. Użyj opcji Liczba najbliższych sąsiadów , aby określić rozmiar przestrzeni funkcji używanej przez algorytm SMOTE podczas tworzenia nowych przypadków. Najbliższy sąsiad to wiersz danych (przypadek), który jest bardzo podobny do niektórych przypadków docelowych. Odległość między dowolnymi dwoma przypadkami jest mierzona przez połączenie wektorów ważonych wszystkich cech.

    • Zwiększając liczbę najbliższych sąsiadów, można uzyskać cechy z większej liczby przypadków.
    • Utrzymując niską liczbę najbliższych sąsiadów, możesz użyć funkcji, które są bardziej podobne do tych w oryginalnej próbce.
  7. Wpisz wartość w polu tekstowym Random seed (Iniekt losowy), jeśli chcesz zapewnić te same wyniki dla przebiegów tego samego eksperymentu z tych samych danych. W przeciwnym razie moduł generuje losowy iniekt na podstawie wartości zegara procesora podczas wdrażania eksperymentu, co może spowodować nieco inne wyniki w przebiegach.

  8. Uruchom eksperyment.

    Dane wyjściowe modułu to zestaw danych zawierający oryginalne wiersze oraz kilka dodanych wierszy z przypadkami chłoniania.

Porada

Jeśli chcesz ustalić, które nowe wiersze zostały dodane, możesz użyć modułów Zastosuj przekształcenie SQL lub Połącz dane.

Uwagi techniczne

  • Podczas publikowania modelu korzystającego z modułu SMOTE usuń smote z eksperymentu predykcyjnego, zanim zostanie opublikowany jako usługa internetowa. Przyczyną jest to, że program SMOTE jest przeznaczony do ulepszania modelu podczas trenowania i nie jest przeznaczony do oceniania. Jeśli opublikowany eksperyment predykcyjny zawiera moduł SMOTE, może wystąpić błąd.

  • Często można uzyskać lepsze wyniki w przypadku zastosowania czyszczenia brakujących wartości lub innych przekształceń w celu naprawienia danych przed zastosowaniem smote.

  • Niektórzy badacze zbadali, czy smoteka jest efektywna w przypadku danych wielowymiarowych lub rozrzedniejszych, takich jak dane używane w klasyfikacji tekstu lub zestawach danych genomiki. Ten dokument zawiera dobre podsumowanie efektów i teoretycznej poprawności stosowania SMOTE w takich przypadkach: Bla za i Lusa: SMOTE dla niezrównoważnych danych klasy wielowymiarowej

    Jeśli smote nie jest skuteczny w zestawie danych, inne podejścia, które warto wziąć pod uwagę, obejmują różne metody zbytniego próbkowania przypadków lub podpróbkowania większości przypadków, a także techniki grupowe, które pomagają uczącemu się bezpośrednio, przy użyciu klastrowania, bagging lub adaptacyjnego zwiększania.

Oczekiwane dane wejściowe

Nazwa Typ Opis
Samples Tabela danych Zestaw danych przykładów

Parametry modułu

Nazwa Zakres Typ Domyślny Opis
Procent SMOTE >= 0 Liczba całkowita 100 Ilość próbkowania w wielokrotnościach 100.
Liczba najbliższych sąsiadów >= 1 Liczba całkowita 1 Liczba najbliższych sąsiadów, z których mają być rysowane funkcje dla nowych przypadków
Iniekt losowy Dowolne Liczba całkowita 0 Iniektator dla generatora liczb losowych

Dane wyjściowe

Nazwa Typ Opis
Tabela Tabela danych Tabela danych zawierająca oryginalne próbki oraz dodatkową liczbę próbek klasy syntetycznej. Liczba nowych próbek to (smotePercent/100)*T, gdzie T to liczba próbek klas zasiekanych.

Zobacz też

Przykład i podział
Lista modułów A–Z