Zrozumienie krzywej ROC

57

Mam problem ze zrozumieniem krzywej ROC.

Czy jest jakaś przewaga / poprawa w obszarze pod krzywą ROC, jeśli zbuduję różne modele z każdego unikalnego podzbioru zestawu treningowego i użyję go do ustalenia prawdopodobieństwa? Na przykład, jeśli ma wartości { a , a , a , a , b , b , b , b } , a ja buduję model A , stosując wartości od 1 do 4 wartości y i 8 do 9 wartości y i buduj model B z wykorzystaniem pozostałych danych pociągu. Na koniec wygeneruj prawdopodobieństwo. Wszelkie uwagi / komentarze będą mile widziane.y{a,a,a,a,b,b,b,b}AayyB

Oto kod r dla lepszego wyjaśnienia mojego pytania:

Y    = factor(0,0,0,0,1,1,1,1)
X    = matirx(rnorm(16,8,2))
ind  = c(1,4,8,9)
ind2 = -ind

mod_A    = rpart(Y[ind]~X[ind,])
mod_B    = rpart(Y[-ind]~X[-ind,])
mod_full = rpart(Y~X)

pred = numeric(8)
pred_combine[ind]  = predict(mod_A,type='prob')
pred_combine[-ind] = predict(mod_B,type='prob')
pred_full          = predict(mod_full, type='prob')

Więc moje pytanie brzmi, pole pod krzywą ROC z pred_combineVS pred_full.

Tay Shin
źródło
3
Lepszy przykład zrobiłby wiele, aby poprawić to pytanie.
mpiktas
Rozumiem, że chcesz zwiększyć AUC, wybierając określone próbki? Jeśli taki jest twój cel, mocno wierzę, że takie podejście do stronniczej selekcji próbek jest całkowicie błędne, przynajmniej jeśli twoim celem jest znalezienie dobrego pomiaru wydajności klasyfikacji.
rapaio
2
spójrz na interaktywne demo ROC
Alleo

Odpowiedzi:

174

Nie jestem pewien, czy otrzymałem pytanie, ale skoro tytuł wymaga wyjaśnienia krzywych ROC, spróbuję.

Krzywe ROC służą do sprawdzenia, jak dobrze twój klasyfikator może oddzielić pozytywne i negatywne przykłady oraz do określenia najlepszego progu dla ich oddzielenia.

Aby móc użyć krzywej ROC, twój klasyfikator musi być w rankingu - to znaczy, powinien być w stanie rankingować przykłady tak, aby te z wyższą rangą były bardziej pozytywne. Na przykład regresja logistyczna generuje prawdopodobieństwa, które są wynikiem, którego można użyć do rankingu.

Rysowanie krzywej ROC

Biorąc pod uwagę zestaw danych i klasyfikator rankingu:

  • uporządkuj przykłady testów według wyniku od najwyższej do najniższej
  • (0,0)
  • x
    • x1/pos
    • x1/neg

posneg

Ten ładny animowany obraz gif powinien lepiej zilustrować ten proces

budowanie krzywej

yx

Obszar objęty ROC

obszar pod rokoko

Obszar pod krzywą ROC (zacieniowany) w naturalny sposób pokazuje odległość krzywej od linii podstawowej. Dla linii podstawowej wynosi 0,5, a dla idealnego klasyfikatora 1.

Możesz przeczytać więcej o AUC ROC w tym pytaniu: Co oznacza AUC i co to jest?

Wybór najlepszego progu

Pokrótce opiszę proces wyboru najlepszego progu, a więcej szczegółów można znaleźć w referencji.

Aby wybrać najlepszy próg, każdy punkt krzywej ROC widzisz jako osobny klasyfikator. Ten mini-klasyfikator wykorzystuje wynik uzyskany jako granica między + a - (tzn. Klasyfikuje jako + wszystkie punkty powyżej bieżącego)

W zależności od frakcji dodatniej / ujemnej w naszym zbiorze danych - równolegle do linii bazowej w przypadku 50% / 50% - budujesz linie dokładności ISO i wybierasz tę z najlepszą dokładnością.

Oto zdjęcie, które to ilustruje i dla szczegółów ponownie zapraszam do referencji

wybór najlepszego progu

Odniesienie

Aleksiej Grigoriew
źródło
Dzięki za świetny komentarz! Przykro mi, że nie mogłem głosować za Twoją odpowiedzią. Wygląda na to, że muszę mieć ponad 15 punktów reputacji :(
Tay Shin
Po prostu ciekawe, Twój rozmiar kroku musiałby zależeć od liczby dodatnich / ujemnych etykiet wyprodukowanych przez twój klasyfikator, prawda? Tj. W gif, rozmiar kroku w górę wynosi .1, jeśli miałbyś dodatkową etykietę dodatnią (zamiast etykiety ujemnej), wtedy „krzywa” skończyłaby się na 1,1 na osi pionowej (a może coś mi brakuje ?). Więc w takim przypadku twój rozmiar kroku musi być mniejszy?
kyphos
Nie, rozmiar kroku zależy od liczby przykładów pozytywnych / negatywnych w zbiorze danych, a nie od dokładności klasyfikatora.
Alexey Grigorev,
2
@gung zrozumiał. Alexey: zamiast pozytywnych i negatywnych przykładów, myślę, że powinno być: pozytywne i fałszywe. Być może zobaczysz moje wydanie odpowiedzi, które zostało cofnięte przez Gunga. dzięki
Escachator,
3
@AlexeyGrigorev, uwielbiam odpowiedź, którą dajesz i głosujesz. Nie jestem pewien, czy istnieją dwie definicje ROC. Mam na myśli definicję ROC tutaj ( en.wikipedia.org/wiki/Receiver_operating_characteristic ), oś x powinna być fałszywie dodatnia, czyli (liczba prognoz dodatnich, ale powinna być ujemna) / (# sumy negatywne), myślę w referencji, myślę, że oś x nie rysuje fałszywie dodatniego wskaźnika, który nie uwzględnia (# całkowitej ujemnej)?
Lin Ma