Czy powinienem wybrać „zrównoważony” zbiór danych czy „reprezentatywny” zestaw danych?


48

Moim zadaniem „uczenia maszynowego” jest oddzielanie łagodnego ruchu internetowego od ruchu złośliwego. W scenariuszu realnym większość (powiedzmy 90% lub więcej) ruchu internetowego jest łagodna. Dlatego czułem, że powinienem również wybrać podobną konfigurację danych do szkolenia moich modeli. Ale natknąłem się na jeden lub dwa artykuły badawcze (w mojej dziedzinie pracy), które wykorzystywały podejście „równoważenia klas” do szkolenia modeli, sugerując taką samą liczbę przypadków łagodnego i złośliwego ruchu.

Ogólnie, jeśli buduję modele uczenia maszynowego, powinienem wybrać zestaw danych, który jest reprezentatywny dla rzeczywistego problemu, lub jest zbalansowanym zestawem danych, który lepiej nadaje się do budowy modeli (ponieważ niektóre klasyfikatory nie zachowują się dobrze w przypadku nierównowagi klas lub z innych nieznanych mi powodów)?

Czy ktoś może rzucić więcej światła na zalety i wady obu wyborów i jak zdecydować, który wybrać?

Odpowiedzi:


38

Powiedziałbym, że odpowiedź zależy od twojego przypadku użycia. Na podstawie mojego doświadczenia:

  • Jeśli próbujesz zbudować reprezentatywny model - taki, który opisuje dane, a nie musi to przewidywać - sugerowałbym użycie reprezentatywnej próbki danych.
  • Jeśli chcesz zbudować model predykcyjny, szczególnie taki, który działa dobrze na podstawie pomiaru AUC lub kolejności rang i planujesz użyć podstawowego frameworku ML (tj. Drzewo decyzyjne, SVM, Naive Bayes itp.), To sugeruję, abyś nakarmił tworzą zbalansowany zestaw danych. Znaczna część literatury na temat nierównowagi klas wskazuje, że losowe niepełne próbkowanie (próbkowanie w dół klasy większości do wielkości klasy mniejszości) może przyczynić się do wzrostu wydajności.
  • Jeśli budujesz model predykcyjny, ale używasz bardziej zaawansowanego frameworka (tj. Czegoś, co określa parametry próbkowania przez opakowanie lub modyfikację frameworka, który pobiera próbki do równoważności klas), to sugerowałbym ponownie karmienie reprezentatywnej próbki i pozwolenie Algorytm zajmuje się równoważeniem danych do treningu.

2
Jeśli próbujesz zbudować reprezentatywny model - taki, który opisuje dane, a nie koniecznie przewiduje ... kto buduje model, który nie predysponuje? Nie
dotarłem

8
Uczenie się bez nadzoru byłoby przykładem, w którym budujesz model, który niekoniecznie jest przeznaczony do przewidywania. W niektórych przypadkach możesz chcieć przejrzeć lub podsumować swoje dane.
DSea

1
Powiedziałbym, że bezpieczniej jest zrównoważyć próbkę, ale także zebrać masy próbkowania, aby w razie potrzeby móc później ponownie zważyć dane w celu zapewnienia reprezentatywności. @pnp wielu naukowców społecznych buduje nieprzewidywalne modele, np. do potwierdzania teorii.
shadowtalker

W jaki sposób model zrównoważony porównałby się do modelu reprezentatywnego, wykorzystując ważone obserwacje do naśladowania modelu zrównoważonego
JenSCDC

1
Nierównowaga klasy nie wpływa na AUC, ponieważ jest to prawdopodobieństwo, że Twój model plasuje losowo wybraną klasę dodatnią wyżej niż losowo wybrana klasa ujemna. Nie zgadzam się z twoją radą tutaj w celach ogólnych. Jeśli masz reprezentatywną próbkę, na przykład prostą próbę losową, powinna ona pozostać reprezentatywna.
Matthew Drury

8

Myślę, że zawsze zależy to od scenariusza. Korzystanie z reprezentatywnego zestawu danych nie zawsze jest rozwiązaniem. Załóżmy, że Twój zestaw treningowy zawiera 1000 negatywnych przykładów i 20 pozytywnych przykładów. Bez modyfikacji klasyfikatora algorytm będzie klasyfikował wszystkie nowe przykłady jako negatywne. W niektórych scenariuszach jest to w porządku, ale w wielu przypadkach koszty braku pozytywnych przykładów są wysokie, więc musisz znaleźć rozwiązanie.

W takich przypadkach można zastosować wrażliwy na koszty algorytm uczenia maszynowego. Na przykład w przypadku analizy danych diagnozy medycznej.

Podsumowując: Błędy klasyfikacji nie mają takiego samego kosztu!


7

Zawsze istnieje rozwiązanie, aby wypróbować oba podejścia i zachować takie, które maksymalizuje oczekiwane wyniki.

W twoim przypadku zakładam, że wolisz minimalizować fałszywe negatywy kosztem niektórych fałszywie dodatnich, więc chcesz uprzedzić klasyfikatora w stosunku do wcześniejszej silnej negatywnej i rozwiązać problem nierównowagi poprzez zmniejszenie liczby negatywnych przykładów w zestawie treningowym.

Następnie oblicz dokładność / przywołanie, czułość / swoistość lub cokolwiek kryterium, które Ci odpowiada na pełnym, niezrównoważonym zestawie danych, aby upewnić się, że nie zignorowałeś znaczącego wzorca występującego w rzeczywistych danych podczas budowania modelu na zredukowanych danych.


4

Oddziel scenariusze operacyjne i szkoleniowe.

Scenariusz operacyjny jest tym, w którym twój klasyfikator będzie mierzony. W tym miejscu powinieneś dobrze działać. Zastosowanie powinno mieć zestaw danych reprezentatywny dla tego scenariusza.

Scenariusz treningowy jest tym, co robisz, aby zbudować klasyfikator, który będzie dobrze działał w scenariuszu operacyjnym.

Wiele razy zestawy danych w obu scenariuszach mają ten sam charakter, więc nie trzeba ich rozróżniać. Na przykład masz sklep internetowy, więc używasz go do trenowania przeszłego użytkowania, aby dobrze sobie radzić z przyszłym użytkowaniem. Jednak podczas szkolenia można użyć innego zestawu danych niż ten, który reprezentuje scenariusz operacyjny. W rzeczywistości, jeśli śpisz, marzysz o klasyfikatorze, sprawdzasz go w swoim scenariuszu operacyjnym (ten krok należy zrobić po przebudzeniu), jesteś równie dobry, jak po przejściu zwykłej ścieżki uczenia maszynowego.

Rozróżnienie między scenariuszami operacyjnymi i szkoleniowymi staje się ważne, gdy zestaw danych jest niezrównoważony. Większość algorytmów nie działa dobrze na takim zestawie danych.

Nie wahaj się więc użyć dwóch zestawów danych - do szkolenia możesz użyć zbalansowanego zestawu danych. Po zakończeniu sprawdź poprawność klasyfikatora zestawu danych operacyjnych.


3

Myślę, że należy rozważyć dwie odrębne kwestie: czas szkolenia i dokładność prognoz.

Weź prosty przykład: załóż, że masz dwie klasy, które mają wielowymiarowy rozkład normalny. Zasadniczo musisz oszacować odpowiednie środki klasowe i kowariancje klasowe. Pierwszą rzeczą, na której Ci zależy, jest oszacowanie różnicy w klasie: ale twoje wyniki są ograniczone dokładnością najgorszego oszacowanego środka: nie jest dobre oszacowanie jednego środka do 100 miejsca po przecinku - jeśli drugi środek jest tylko oszacowano z dokładnością do 1 miejsca po przecinku. Wykorzystanie wszystkich danych to marnowanie zasobów obliczeniowych - zamiast tego można powtórzyć próbkowanie bardziej powszechnej klasy ORAZ odpowiednio zmienić jej klasę. (te zasoby obliczeniowe można następnie wykorzystać do eksploracji różnych zmiennych wejściowych itp.)

Teraz drugim problemem jest dokładność predykcyjna: różne algorytmy używają różnych wskaźników błędów, które mogą, ale nie muszą zgadzać się z twoimi celami. Na przykład regresja logistyczna będzie karać za ogólny błąd prawdopodobieństwa, więc jeśli większość danych pochodzi z jednej klasy, wówczas będzie dążyć do poprawienia dokładnych szacunków prawdopodobieństwa (np. 90 do 95% prawdopodobieństwa) dla tej jednej klasy, zamiast próbować zidentyfikować rzadka klasa. W takim przypadku zdecydowanie powinieneś spróbować przeważyć, aby podkreślić rzadką klasę (a następnie skorygować oszacowanie [dostosowując warunek polaryzacji], aby wyrównać oszacowania prawdopodobieństwa)

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.