Pakowanie z oversamplingiem dla modeli predykcyjnych rzadkich zdarzeń

13

Czy ktoś wie, czy opisano poniżej (i tak czy inaczej), czy brzmi to jak wiarygodna metoda uczenia się modelu predykcyjnego z bardzo niezrównoważoną zmienną docelową?

Często w aplikacjach CRM do eksploracji danych będziemy szukać modelu, w którym zdarzenie pozytywne (sukces) jest bardzo rzadkie w porównaniu do większości (klasa negatywna). Na przykład mogę mieć 500 000 przypadków, w których tylko 0,1% to dodatnia klasa zainteresowań (np. Kupiony klient). Tak więc, aby stworzyć model predykcyjny, jedną z metod jest próbkowanie danych, dzięki czemu zachowuje się wszystkie instancje klasy dodatniej i tylko próbkę instancji klasy ujemnej, aby stosunek klasy dodatniej do ujemnej był bliższy 1 (może 25% do 75% dodatnich na ujemne). Nadmierne pobieranie próbek, niepełne pobieranie próbek, SMOTE itp. To wszystkie metody w literaturze.

Interesuje mnie połączenie powyższej podstawowej strategii próbkowania, ale z zapakowaniem klasy negatywnej. Po prostu coś takiego:

  • Zachowaj wszystkie pozytywne wystąpienia klasy (np. 1000)
  • Próbkuj negatywne instancje klasy, aby utworzyć próbkę zrównoważoną (np. 1000).
  • Dopasuj model
  • Powtarzać

Czy ktoś słyszał o tym wcześniej? Problem, który wydaje się bez spakowania, polega na tym, że próbkowanie tylko 1000 instancji klasy negatywnej, gdy jest ich 500 000, polega na tym, że przestrzeń predyktora będzie rzadka i może nie być reprezentacji możliwych wartości / wzorców predykcyjnych. Wydaje się, że to pomaga w pakowaniu.

Spojrzałem na rpart i nic nie „pęka”, gdy jedna z próbek nie ma wszystkich wartości dla predyktora (nie psuje się, gdy następnie przewiduje wystąpienia z tymi wartościami predyktora:

library(rpart)
tree<-rpart(skips ~ PadType,data=solder[solder$PadType !='D6',], method="anova")
predict(tree,newdata=subset(solder,PadType =='D6'))

jakieś pomysły?

AKTUALIZACJA: Wziąłem zestaw danych ze świata rzeczywistego (dane marketingowe z odpowiedzią bezpośredniej poczty) i losowo podzieliłem go na szkolenie i sprawdzanie poprawności. Istnieje 618 predyktorów i 1 cel binarny (bardzo rzadko).

Training:
Total Cases: 167,923
Cases with Y=1: 521

Validation:
Total Cases: 141,755
Cases with Y=1: 410

Wziąłem wszystkie pozytywne przykłady (521) z zestawu treningowego i losową próbę negatywnych przykładów tego samego rozmiaru dla zrównoważonej próbki. Dopasowuję drzewo Rpart:

models[[length(models)+1]]<-rpart(Y~.,data=trainSample,method="class")

Powtórzyłem ten proces 100 razy. Następnie przewidział prawdopodobieństwo Y = 1 w przypadkach próby walidacji dla każdego z tych 100 modeli. Po prostu uśredniłem 100 prawdopodobieństw dla ostatecznego oszacowania. Decilowałem prawdopodobieństwa na zbiorze walidacyjnym i w każdym decylu obliczałem odsetek przypadków, w których Y = 1 (tradycyjna metoda szacowania zdolności rangowania modelu).

Result$decile<-as.numeric(cut(Result[,"Score"],breaks=10,labels=1:10)) 

Oto wydajność: wprowadź opis zdjęcia tutaj

Aby zobaczyć, jak to się porównuje z brakiem spakowania, przewidziałem próbę walidacyjną tylko z pierwszą próbką (wszystkie przypadki dodatnie i losowa próbka tego samego rozmiaru). Oczywiste jest, że próbkowane dane były zbyt rzadkie lub nadmierne, aby mogły być skuteczne w próbie sprawdzania poprawności.

Sugerowanie skuteczności rutynowej procedury workowania, gdy występuje rzadkie zdarzenie i duże ni

wprowadź opis zdjęcia tutaj

B_Miner
źródło

Odpowiedzi:

7

Z wyjątkiem włączenia tych samych pozytywnych przykładów klasy do każdej torby, jest to S ^ 3Bagging, jak opisano w S ^ 3Bagging: Metoda indukcji szybkiego klasyfikatora z podpróbkowaniem i pakowaniem . (Nie przeczytałem dogłębnie tego artykułu, po prostu go przejrzałem.)

Nie widzę nic teoretycznie złego w twoim podejściu, chociaż znacznie częściej widziałem podpróbkowanie w połączeniu z dopalaniem niż pakowaniem.

To może nie do końca odpowiedzieć na twoje pytanie, ale doskonałym dokumentem na temat różnych sposobów radzenia sobie z niezrównoważonymi danymi jest Uczenie się od niezrównoważonych danych . Wydaje się, że uczenie się wrażliwe na koszty może być bardziej odpowiednie w twoim przypadku. Ponieważ korzystasz z Lasów decyzyjnych, sekcja 3.2.3 Drzewa decyzyjne wrażliwe na koszty byłyby prawdopodobnie pomocne. W Stanach,

W odniesieniu do drzew decyzyjnych dopasowanie wrażliwe na koszty może przyjąć trzy formy: po pierwsze, dostosowania progu wrażliwego na koszty można zastosować do progu decyzyjnego; po drugie, w przypadku każdego węzła można uwzględnić rozważenia dotyczące kryteriów podziału; wreszcie na drzewo można zastosować wrażliwe na koszty schematy przycinania

Wrażliwe na koszty korekty progu decyzyjnego w zasadzie oznaczają wybranie progu decyzyjnego na podstawie wydajności ROC lub Precision-Recall Curve. W szczególności wydajność ChRL jest odporna na niezrównoważone dane.

Kryteria podziału wrażliwe na koszty sprowadzają się do zmiany funkcji zanieczyszczenia w celu radzenia sobie z niezrównoważonymi danymi. Wspomniany wyżej artykuł stwierdza,

W [63] wykazano, że trzy specyficzne funkcje zanieczyszczeń, Gini, Entropy i DKM, mają lepszą wrażliwość na koszty w porównaniu z linią bazową dokładność / poziom błędu. Co więcej, te eksperymenty empiryczne wykazały również, że przy użyciu funkcji DKM generowano generalnie mniejsze niecięte drzewa decyzyjne, które w gorszym przypadku zapewniały dokładności porównywalne z Gini i Entropy. Szczegółowa podstawa teoretyczna wyjaśniająca wnioski z tych wyników empirycznych została później ustalona w [49], która uogólnia skutki wzrostu drzewa decyzyjnego dla dowolnego wyboru kryteriów mierzei.

Jeśli chodzi o przycinanie,

Jednak w przypadku braku równowagi danych procedury przycinania mają tendencję do usuwania liści opisujących koncepcję mniejszości. Wykazano, że chociaż przycinanie drzew indukowanych na podstawie niezrównoważonych danych może utrudniać wydajność, użycie nieciętych drzew w takich przypadkach nie poprawia wydajności [23]. W rezultacie zwrócono uwagę na poprawę oszacowania prawdopodobieństwa klasy w każdym węźle w celu opracowania bardziej reprezentatywnych struktur drzew decyzyjnych, tak aby przycinanie można było zastosować z pozytywnymi skutkami. Niektóre reprezentatywne prace obejmują metodę wygładzania Laplace'a oszacowania prawdopodobieństwa i technikę cięcia Laplace'a [49].

[23] N. Japkowicz i S. Stephen, „Problem nierównowagi klasowej: systematyczne badanie”, Intelligent Data Analysis, vol. 6, nr 5, str. 429–449, 2002.

[49] C. Elkan, „Podstawy uczenia się wrażliwego na koszty”, Proc. Międzynarodowa Konf. Artificial Intelligence, s. 973–978, 2001.

[63] C. Drummond i RC Holte, „Wykorzystanie wrażliwości (nie) kosztów kryteriów podziału drzewa decyzyjnego”, Proc. Int'l Conf. Machine Learning, str. 239–246, 2000.

potulnie
źródło
0

To jest bardzo ciekawe. Niedawno mam projekt, który ma podobną sytuację, w której sprawdzanie poprawności rzadkich zdarzeń przebiega dobrze, podczas gdy sprawdzanie niedziałań w najniższym przewidywanym zakresie (np. 0,0 - 0,1) było niestabilne z miesiąca na miesiąc. Powody, jak wspomniałeś, ze względu na dużą populację nie-zdarzeń, lepiej włączyć więcej próbek do zbiorów szkoleniowych, aby było wystarczająco dużo próbek, aby pokryć różne kombinacje zmiennych.

Słoneczko
źródło