Pytanie:
Obszar pod krzywą ROC w jakiś sposób penalizuje modele ze zbyt dużą liczbą zmiennych objaśniających?
Luca Dibo
2015-09-11 00:26:35 UTC
view on stackexchange narkive permalink

Używam Area Under Curve ROC jako miary wydajności moich algorytmów klasyfikacji (regresje logistyczne). Ponieważ mam zamiar wybrać model, który maksymalizuje ROC obszaru pod krzywą, chciałbym wiedzieć, czy AUC w jakiś sposób wpływa na modele ze zbyt wieloma regresorami (na przykład, takie jak kryterium informacyjne BIC).

Nie.AUC ocenia tylko wydajność predykcyjną i jest całkowicie niezależny od złożoności modelu.
Dzięki Marc.Tak więc nie rozumiem: mogę wybierać między zestawem 30 regresorów, dlaczego AUC jest maksymalne przy podzbiorze zaledwie 8 regresorów?Chodzi mi o to, że jeśli nie penalizuje złożoności modelu, to dlaczego nie wybiera wszystkich możliwych regresorów?
Prawdopodobnie dlatego, że niektóre dane wejściowe pogarszają wydajność twojego klasyfikatora.Posiadanie większej liczby danych wejściowych nie gwarantuje lepszego klasyfikatora.
Czy obliczyłeś AUC „w próbie” (tj. na tych samych danych, które wykorzystałeś do oszacowania regresji logistycznej) „poza próbą” (na innych danych niż dane, których użyłeś do oszacowania)?czy porównujesz AUC przy użyciu tych samych danych?
Szacuję parametry logistyczne w zbiorze uczącym (75% całego zbioru danych), a następnie obliczam AUC w zbiorze testowym (25%) i tak, porównuję AUC na tych samych danych (ten sam zestaw testowy).
@LucaDibo powodem, dla którego widzisz, że AUC sprzyja mniejszej liczbie regresorów, nie jest żadna specjalna właściwość AUC.Dzieje się tak tylko dlatego, że używasz podziału pociągu na test.Zobacz moją odpowiedź poniżej.
Pięć odpowiedzi:
Paul
2015-09-13 18:40:23 UTC
view on stackexchange narkive permalink

Wspomniałeś w komentarzach, że obliczasz AUC przy użyciu podziału 75–25 testów pociągów i zastanawiasz się, dlaczego AUC jest maksymalizowane podczas trenowania modelu tylko na 8 z 30 regresorów. Z tego odniosłeś wrażenie, że AUC w jakiś sposób penalizuje złożoność w twoim modelu.

W rzeczywistości jest coś penalizującego złożoność w twoim modelu, ale nie jest to metryka AUC. To jest podział pociąg-test. Podział pociąg-test umożliwia użycie praktycznie dowolnej metryki, nawet AUC, do wyboru modelu, nawet jeśli nie mają nieodłączna kara za złożoność modelu.

Jak zapewne wiesz, nie mierzymy wydajności na tych samych danych, na których trenujemy nasze modele, ponieważ współczynnik błędów danych treningowych jest generalnie zbyt optymistyczną miarą wydajności w praktyce (patrz sekcja 7.4 książki ESL). Ale to nie jest najważniejszy powód, aby używać podziałów pociąg-test. Najważniejszym powodem jest uniknięcie nadmiernego dopasowania do nadmiernie złożonych modeli.

Biorąc pod uwagę dwa modele A i B takie, że B „zawiera A” (zestaw parametrów B zawiera parametr A), błąd uczenia jest matematycznie gwarantowany na korzyść modelu B, jeśli dopasowujesz się, optymalizując jakieś kryterium dopasowania i mierząc błąd według tego samego kryterium. Dzieje się tak, ponieważ B może dopasować dane na wszystkie możliwe sposoby, a także dodatkowe sposoby, które mogą powodować mniejszy błąd niż najlepsze dopasowanie A. Właśnie dlatego spodziewałeś się zobaczyć mniejszy błąd po dodaniu większej liczby predyktorów do modelu.

Jednak dzieląc dane na dwa rozsądnie niezależne zbiory do trenowania i testowania, możesz ustrzec się przed tą pułapką. Agresywne dopasowanie danych treningowych z wieloma predyktorami i parametrami niekoniecznie poprawia dopasowanie danych testowych. W rzeczywistości, bez względu na model lub kryterium dopasowania, możemy ogólnie oczekiwać, że model, który przekroczył dane uczące, nie będzie dobrze działał na niezależnym zestawie danych testowych, których nigdy nie widział. Wraz ze wzrostem złożoności modelu do obszaru nadmiernego dopasowania, wydajność zestawu testowego będzie się generalnie pogarszać, gdy model będzie wychwytywał coraz bardziej fałszywe wzorce danych szkoleniowych, oddalając swoje przewidywania coraz bardziej od rzeczywistych trendów w systemie, który próbuje przewidzieć. Zobacz na przykład slajd 4 w tej prezentacji oraz sekcje 7.10 i 7.12 ESL.

Jeśli nadal potrzebujesz przekonywania, prosty eksperyment myślowy może pomóc. Wyobraź sobie, że masz zbiór danych zawierający 100 punktów z prostym trendem liniowym i szumem gaussowskim i chcesz dopasować model wielomianowy do tych danych. Teraz powiedzmy, że dzielisz dane na zbiory uczące i testowe o rozmiarze 50 każdy i dopasowujesz wielomian stopnia 50 do danych uczących. Ten wielomian będzie interpolował dane i dawał zerowy błąd zestawu treningowego, ale będzie wykazywał dzikie zachowanie oscylacyjne, przenosząc go daleko, daleko od prostej liniowej linii trendu. Spowoduje to niezwykle duże błędy w zbiorze testowym, znacznie większe niż w przypadku prostego modelu liniowego. Tak więc model liniowy będzie faworyzowany przez błąd CV. Stanie się tak również, jeśli porównasz model liniowy z bardziej stabilnym modelem, takim jak splajny wygładzające, chociaż efekt będzie mniej dramatyczny.

Podsumowując, używając technik dzielenia testów pociągów, takich jak CV, i mierząc wydajność na danych testowych, otrzymujemy niejawną karę za złożoność modelu, bez względu na to, jakiej metryki używamy, tylko dlatego, że model musi przewidywać dane nie widział. Z tego powodu dzielenie testów na pociąg jest powszechnie stosowane w nowoczesnym podejściu do oceny wyników w regresji i klasyfikacji.

Frank Harrell
2015-09-13 17:04:52 UTC
view on stackexchange narkive permalink

Istnieje dobry powód, dla którego współczynniki regresji w regresji logistycznej są szacowane poprzez maksymalizację lub prawdopodobieństwo ukarane. Prowadzi to do pewnych właściwości optymalności. Prawdopodobieństwo zgodności ($ c $ -index; AUROC) jest użyteczną dodatkową miarą opisującą dyskryminację predykcyjną końcowego modelu, ale nie jest wystarczająco czułe dla przewidywanego zastosowania ani nie prowadzi do optymalnego modelu. Jest to zupełnie poza problemem nadmiernego dopasowania, który wpływa zarówno na $ c $ -index, jak i (niezapłacone) prawdopodobieństwo.

$ c $ -index może osiągnąć swoje maksimum przy zwodniczo małej liczbie predyktorów, chociaż nie jest to karalne za złożoność modelu, ponieważ prawdopodobieństwo zgodności nie nagradza skrajnych przewidywań, które są „poprawne”. $ c $ używa tylko kolejności rang prognoz, a nie bezwzględnych przewidywanych wartości. $ c $ nie jest wystarczająco czuły, aby można go było użyć do porównania dwóch modeli.

Poszukiwanie modelu, który nie wykorzystuje całej listy predyktorów, często nie jest dobrze zmotywowane. Wybór modelu powoduje niestabilność i ekstremalne trudności z współliniowościami. Jeśli chcesz optymalnego przewidywania, korzystanie ze wszystkich funkcji kandydatów i uwzględnienie kar będzie działać najlepiej w większości sytuacji, z którymi możesz się spotkać. Dane rzadko zawierają wystarczające informacje, aby można było dokonać właściwego wyboru, które zmienne są „ważne”, a które bezwartościowe.

Szacuję parametry logistyczne w zbiorze uczącym, a następnie obliczam AUC w zbiorze testowym.W ten sposób rozwiązuję problem przesadnego dopasowania (tak mi się wydaje).Nie rozumiem następujących rzeczy: skoro mogę wybierać między zestawem 30 regresorów, dlaczego AUC jest maksymalne przy podzbiorze zaledwie 8 regresorów?Chodzi mi o to, że jeśli nie penalizuje złożoności modelu, to dlaczego nie wybiera wszystkich możliwych regresorów?
AUC nie powinno odgrywać żadnej roli w tym procesie.W regresji logistycznej chodzi o prawdopodobieństwo (lub odchylenie).Powinieneś zoptymalizować odchylenie w próbce testowej.Zakłada się, że masz ogromne szkolenie i ogromną próbkę testową, w przeciwnym razie walidacja podzielonej próbki jest niestabilna.Rozszerzyłem moją odpowiedź, aby zająć się Twoim drugim pytaniem.
Eric Czech
2015-09-13 19:42:19 UTC
view on stackexchange narkive permalink

Powinno to pomóc wyjaśnić kilka rzeczy w jak najmniejszej liczbie słów:

  • AUC = miara rzeczywistej predykcyjnej wydajności modelu
  • BIC = oszacowanie predykcyjnej wydajności modelu

Miary wydajności , takie jak AUC to coś, czego można użyć do oceny przewidywań modelu dotyczących danych, których nigdy wcześniej nie widział.

Z drugiej strony Kryteria informacyjne , takie jak BIC, próbują zgadnij , jak dobrze model mógłby przewidywać na podstawie tego, jak dobrze model pasuje do danych uczących ORAZ liczby parametrów użytych do dopasowania jako kary (użycie liczby parametrów zapewnia lepsze domysły).

Mówiąc najprościej, BIC (i inne kryteria informacyjne), przybliż, jakie miary wydajności, takie jak AUC, dają ci bezpośrednio. Mówiąc dokładniej:

  • Kryteria informacyjne mają na celu przybliżenie poza próbą odchylenia przy użyciu tylko danych uczących i dokonują lepszych przybliżeń, gdy uwzględnianie liczby użytych parametrów.
  • Bezpośrednie miary wydajności, takie jak odchylenie lub AUC, służą do oceny, jak dobrze model tworzy prognozy na podstawie danych walidacyjnych / testowych . Liczba parametrów jest dla nich nieistotna, ponieważ ilustrują one wydajność w najprostszy możliwy sposób.

Na początku wydawało mi się, że związek między kryteriami informacyjnymi a miernikami wydajności był trudny do zrozumienia, ale to właściwie całkiem proste. Gdybyś użył odchylenia zamiast AUC jako miary wydajności, wtedy BIC w zasadzie powiedziałby ci, jakiego odchylenia możesz się spodziewać, gdybyś faktycznie dokonał prognoz na swoim modelu, a następnie zmierzył ich odchylenie.

To nasuwa pytanie, po co w ogóle stosować kryteria informacyjne? Cóż, nie powinieneś, jeśli próbujesz zbudować jak najdokładniejszy model. Trzymaj się AUC , ponieważ modele, które mają niepotrzebne predyktory, prawdopodobnie dają gorsze prognozy (więc AUC nie penalizuje ich jako takich, po prostu mają mniejszą moc predykcyjną).

user83346
2015-09-13 22:47:18 UTC
view on stackexchange narkive permalink

W regresji logistycznej (robię to na jednej zmiennej dla łatwiejszego pisania) próbujesz wyjaśnić wynik binarny $ y_i \ in \ {0,1 \} $ zakładając, że jest to wynik zmiennej losowej Bernouilliego z prawdopodobieństwem sukcesu $ p_i $, które zależy od twojej zmiennej objaśniającej $ x_i $, tj. $ p_i = P (y_i = 1 | _ {x_i}) = f (x_i) $, gdzie $ f $ to funkcja logistyczna: $ f (x) = \ frac {1} {1 + e ^ {- (\ beta_0 + \ beta_1 x)}} $. Parametry $ \ beta_i $ są szacowane według maksymalnego prawdopodobieństwa. Działa to w następujący sposób: dla $ i $ -tej obserwacji obserwujesz wynik $ y_i $ i prawdopodobieństwo sukcesu wynosi $ p_i = f (x_i) $, prawdopodobieństwo zaobserwowania $ y_i $ dla Bernouilli z prawdopodobieństwem sukcesu $ p_i $ jest $ p_i ^ {y_i} (1-p_i) ^ {(1-y_i)} $. Zatem dla wszystkich obserwacji w próbie, zakładając niezależność między obserwacjami, prawdopodobieństwo wystąpienia $ y_i, i = 1,2, \ dots n $ wynosi $ \ prod_ {i = 1} ^ np_i ^ {y_i} (1- p_i) ^ {(1-y_i)} $. Używając powyższej definicji $ p_i = f (x_i) $ staje się to $ \ prod_ {i = 1} ^ nf (x_i) ^ {y_i} (1-f (x_i)) ^ {(1-y_i)} = $ . Ponieważ $ y_i $ i $ x_i $ są obserwowanymi wartościami, możemy to zobaczyć jako funkcję nieznanych parametrów $ \ beta_i $, tj. $ \ Mathcal {L} (\ beta_0, \ beta_1) = \ prod_ {i = 1 } ^ n \ left (\ frac {1} {1 + e ^ {- (\ beta_0 + \ beta_1 x_i)}} \ right) ^ {y_i} \ left (1- \ frac {1} {1 + e ^ { - (\ beta_0 + \ beta_1 x_i)}} \ right) ^ {(1-y_i)} $. Maksymalne prawdopodobieństwo znajduje wartości $ \ beta_i $, które maksymalizują $ \ mathcal {L} (\ beta_0, \ beta_1) $. Oznaczmy to maksimum $ (\ hat {\ beta} _0, \ hat {\ beta} _1) $, a następnie wartość prawdopodobieństwa w tym maksimum wynosi $ \ mathcal {L} (\ hat {\ beta} _0, \ hat {\ beta} _1) $.

W podobny sposób, gdybyś użył dwóch zmiennych objaśniających $ x_1 $ i $ x_2 $, to funkcja prawdopodobieństwa miałaby trzy parametry $ \ mathcal {L} '(\ beta_0, \ beta_1 , \ beta_2) $, a maksimum to $ (\ hat {\ beta} '_ 0, \ hat {\ beta}' _ 1, \ hat {\ beta} '_ 2) $, a wartość prawdopodobieństwa będzie $ \ mathcal {L} '(\ hat {\ beta}' _ 0, \ hat {\ beta} '_ 1, \ hat {\ beta}' _ 2) $. Oczywiście oznaczałoby to, że $ \ mathcal {L} '(\ hat {\ beta}' _ 0, \ hat {\ beta} '_ 1, \ hat {\ beta}' _ 2) > \ mathcal {L} (\ hat { \ beta} _0, \ hat {\ beta} _1) $, czy zwiększenie prawdopodobieństwa jest znaczące musi zostać „przetestowane” np. test współczynnika wiarygodności. Tak więc testy współczynnika prawdopodobieństwa pozwalają „karać” modele ze zbyt dużą liczbą regresorów .

Tak nie jest w przypadku AUC! W rzeczywistości AUC nawet nie mówi ci, czy twoje „prawdopodobieństwo sukcesu” jest dobrze przewidywane! Jeśli weźmiesz wszystkie możliwe pary $ (i, j) $, gdzie $ y_i = 1 $ i $ y_j = 0 $, to AUC będzie równe ułamkowi wszystkich tych par, które mają $ p_i < p_j $. AUC ma więc związek z (1) tym, jak dobry jest twój model w rozróżnianiu między „0” i „1” (mówi o parach z jednym „zerem” i jednym „jedynkiem”), nie mówi nic o tym, jak dobry Twój model polega na przewidywaniu prawdopodobieństw! i (2) opiera się wyłącznie na „rankingu” ($ p_i < p_j $) prawdopodobieństw. Jeśli dodanie 1 zmiennej objaśniającej nie zmienia niczego w rankingu prawdopodobieństw badanych, to AUC nie zmieni się po dodaniu zmiennej objaśniającej.

Zatem pierwsza Pytanie, które musisz zadać, to to, co chcesz przewidzieć : czy chcesz rozróżnić zera i jedynki, czy też chcesz mieć „dobrze przewidywane prawdopodobieństwa”? Dopiero po udzieleniu odpowiedzi na to pytanie możesz poszukać najbardziej oszczędnej techniki.

Jeśli chcesz rozróżnić zera i jedynki, opcją może być ROC / AUC. Jeśli chcesz dobrze przewidzieć prawdopodobieństwa, powinieneś przyjrzeć się testowi dopasowania w regresji logistycznej; które „pasuje” chcemy przetestować?.

RUser4512
2015-09-13 15:50:36 UTC
view on stackexchange narkive permalink

Jak powiedział Marc, AUC jest tylko miarą wydajności, podobnie jak współczynnik błędnej klasyfikacji. Nie wymaga żadnych informacji o modelu.

I odwrotnie, BIC, AIC, muszą znać liczbę parametrów modelu do oceny.

Nie ma dobrego powodu, jeśli wszystkie predyktory są istotne, aby współczynnik błędnej klasyfikacji lub AUC zmniejszał się podczas usuwania zmiennych.

Jednak dość często zdarza się, że połączenie algorytmu uczącego się, miary ważności zmiennych i selekcja zmiennych (na podstawie ważności, jaką nadaje im algorytm) będzie działać lepiej niż dopasowywanie modelu do całego zbioru danych .

Masz implementację tej metody dla Random Forests w pakiecie R RFauc.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...