Nadzorowane uczenie się przy „rzadkich” zdarzeniach, gdy rzadkość wynika z dużej liczby zdarzeń kontrfaktycznych
13
Załóżmy, że możesz obserwować „dopasowania” między kupującymi a sprzedającymi na rynku. Możesz także obserwować cechy zarówno kupujących, jak i sprzedających, których chciałbyś użyć do przewidywania przyszłych meczów i przedstawiać rekomendacje obu stronom rynku.
Dla uproszczenia załóżmy, że istnieje N nabywców i N sprzedawców oraz że każdy z nich znajdzie dopasowanie. Jest N dopasowań i (N-1) (N-1) niepasujących. Kompletny zestaw danych szkoleniowych zawiera obserwacje N + (N-1) * (N-1), które mogą być zbyt duże. Wydaje się, że losowe próbkowanie z niepasujących (N-1) (N-1) i szkolenie algorytmu na tych zredukowanych danych może być bardziej wydajne. Moje pytania to:
(1) Czy pobieranie próbek z niepasujących do siebie zestawów danych treningowych jest rozsądnym sposobem radzenia sobie z tym problemem?
(2) Jeśli (1) jest prawdą, czy istnieje rygorystyczny sposób decydowania, jak duży fragment (N-1) (N-1) należy uwzględnić?
Jeśli dobrze rozumiem, masz problem z klasyfikacją dwóch klas, gdzie klasa dodatnia (dopasowania) jest rzadka. Wielu klasyfikatorów boryka się z takim brakiem równowagi klas i powszechną praktyką jest podpróbkowanie klasy większościowej w celu uzyskania lepszej wydajności, więc odpowiedź na pierwsze pytanie brzmi „tak”. Jeśli jednak podpróbkujesz zbyt wiele, skończysz z klasyfikatorem, który przesadza z pozytywną klasą mniejszości, więc najlepiej jest wybrać proporcję podpróbkowania, aby zmaksymalizować wydajność, być może przez zminimalizowanie krzyżowania błąd sprawdzania poprawności, gdy dane testowe nie zostały poddane próbce cząstkowej, dzięki czemu uzyskuje się dobre wskazanie wydajności operacyjnej.
Jeśli masz klasyfikator probabilistyczny, który daje oszacowanie prawdopodobieństwa członkostwa w klasie, możesz przejść o jeden lepszy i przetworzyć dane wyjściowe, aby zrekompensować różnicę między częstotliwościami klasowymi w zestawie treningowym i podczas pracy. Podejrzewam, że w przypadku niektórych klasyfikatorów optymalnym podejściem jest optymalizacja zarówno współczynnika podpróbkowania, jak i korekcji na wyjściu poprzez optymalizację błędu weryfikacji krzyżowej.
Zamiast podpróbkowania, dla niektórych klasyfikatorów (np. SVM) można nadać różną wagę wzorcom dodatnim i ujemnym. Wolę to od podpróbkowania, ponieważ oznacza to, że nie ma zmienności wyników z powodu konkretnej zastosowanej podpróbki. Tam, gdzie nie jest to możliwe, użyj ładowania początkowego, aby utworzyć spakowany klasyfikator, w którym w każdej iteracji używana jest inna podpróbka większościowej klasy.
Inną rzeczą, którą powiedziałbym, jest to, że często tam, gdzie występuje duża nierównowaga klasy, fałszywe błędy ujemne i fałszywie dodatnie błędy nie są równie złe, i dobrze jest wbudować to w projekt klasyfikatora (który można osiągnąć przez sub wzorce próbkowania lub ważenia należące do każdej klasy).
(+1), jednak uważam, że należy rozróżnić cel rankingu (miara: AUC) i oddzielenie dwóch klas (miara: dokładność). W pierwszym przypadku, biorąc pod uwagę probabilistyczną klasę, taką jak Naive Bayes, nierównowaga odgrywa mniejszą rolę, jak sądzę. A może też należy się tym martwić? Kolejne pytanie: co rozumiesz przez „przetwarzanie danych wyjściowych”? Konwertujesz wyniki na rzeczywiste prawdopodobieństwa?
steffen
@Steffen Moją intuicją jest to, że problem nierównowagi klas jest mniejszym problemem w rankingu, ale że nie zniknie całkowicie (pracuję nad tym problemem, więc jest to coś, co warto rozwiązać). Przez przetwarzanie końcowe miałem na myśli pomnożenie wyników przez stosunek częstotliwości klas zestawu operacyjnego i treningowego, a następnie ponowną normalizację, aby prawdopodobieństwa wszystkich możliwych wyników sumowały się do jednego. Jednak w praktyce rzeczywisty optymalny współczynnik skalowania może być nieco inny - dlatego optymalizuj za pomocą XVAL (ale nadal normalizuj ponownie).
Dikran Marsupial
1
Dotyczy (1). Jeśli chcesz uzyskać znaczące wyniki, musisz zachować pozytywne i negatywne obserwacje.
(2) Nie ma mądrzejszej metody podpróbkowania niż rozkład równomierny, jeśli nie masz a priori swoich danych.
Dzięki Ugo - zgodził się, zdecydowanie dane meczowe muszą zawierać zarówno mecze, jak i nie. Pytanie dotyczy tego, ile potrzebnych jest niepasujących elementów (N-1) (N-1). W przypadku części (2) zdecydowanie bym spróbował w / równą wagę we wszystkich obserwacjach.
John Horton,
Cóż, jeśli nie masz apriori na swoich danych, nie ma rozsądnego sposobu na próbkowanie danych. Więc musisz zrobić jednolite próbkowanie, a w tym przypadku im więcej bierzesz, tym lepiej. Można jednak oszacować błąd związany z próbkowaniem, ale brakuje nam tutaj informacji, które mogłyby pomóc w tej kwestii.
Ugo
Wydaje mi się, że błąd będzie zależał od rodzaju zastosowanego klasyfikatora. W każdym razie zawsze możesz spróbować przewidzieć z różną częstotliwością próbkowania i ustalić próg, w którym uważasz, że wprowadzony błąd jest zadowalający.
Dotyczy (1). Jeśli chcesz uzyskać znaczące wyniki, musisz zachować pozytywne i negatywne obserwacje.
(2) Nie ma mądrzejszej metody podpróbkowania niż rozkład równomierny, jeśli nie masz a priori swoich danych.
źródło