Jak generować krzywe ROC do weryfikacji krzyżowej z pominięciem jednego z nich?

10

Podczas przeprowadzania 5-krotnej walidacji krzyżowej (na przykład) typowe jest obliczanie osobnej krzywej ROC dla każdej z 5 krotności i często pomnożenie średniej krzywej ROC ze std. dev. pokazane jako grubość krzywej.

Jednak w przypadku walidacji krzyżowej LOO, w której w każdym folderze jest tylko jeden testowy punkt danych, obliczenie „krzywej” ROC dla tego pojedynczego punktu danych nie wydaje się sensowne.

Biorę wszystkie moje punkty danych testowych (wraz z ich osobno obliczonymi wartościami p) i łączę je w jeden duży zestaw, aby obliczyć pojedynczą krzywą ROC, ale czy jest to statystycznie koszerna rzecz do zrobienia?

Jaki jest właściwy sposób zastosowania analizy ROC, gdy liczba punktów danych w każdej zakładce wynosi jeden (jak w przypadku weryfikacji krzyżowej LOO)?

użytkownik1121
źródło
Dlaczego? Co chcesz osiągnąć z takim stworzeniem?
Muszę przeanalizować ogólną wydajność prognozowania w zakresie progów wartości p, a krzywe ROC są tym, co tradycyjnie stosowałem do każdego innego rodzaju walidacji krzyżowej. Tak więc w zasadzie te same powody, dla których analiza ROC jest przydatna przy każdej k-krotnej walidacji krzyżowej. Jeśli istnieje inne, analogiczne podejście do LOO xval, dobrze byłoby o tym wiedzieć. Zamiast tego zrobiłbym coś takiego jak 10-krotny xval, gdybym miał wystarczającą ilość danych i nie byłoby to problemem.
user1121
1
Powiedziałbym, że robisz to rozsądnie, po prostu stwórz pojedynczą krzywą ROC, używając prawdziwej etykiety i przewidywanej wartości dla każdego przypadku (gdzie ten przypadek był wstrzymany)
B_Miner

Odpowiedzi:

15

Jeśli klasyfikator wyprowadza prawdopodobieństwo, właściwe jest połączenie wszystkich wyników w punkcie testowym dla pojedynczej krzywej ROC. Jeśli nie, to skaluj dane wyjściowe klasyfikatora w sposób, który uczyniłby go bezpośrednio porównywalnym między klasyfikatorami. Załóżmy na przykład, że używasz liniowej analizy dyskryminacyjnej. Wytrenuj klasyfikator, a następnie przeprowadź dane treningowe przez klasyfikator. Naucz się dwóch wag: parametru skali (odchylenie standardowe wyjść klasyfikatora po odjęciu średnich klas) i parametru przesunięcia (średnia z pierwszej klasy). Użyj tych parametrów, aby znormalizować wyjściową wartość wyjściową każdego klasyfikatora LDA za pomocąσμrn=(rμ)/σ, a następnie możesz utworzyć krzywą ROC z zestawu znormalizowanych danych wyjściowych. Ma to zastrzeżenie, że szacujesz więcej parametrów, a zatem wyniki mogą się nieco różnić niż w przypadku zbudowania krzywej ROC na podstawie oddzielnego zestawu testów.

Jeśli nie jest możliwe znormalizowanie wyników klasyfikatora lub przekształcenie ich w prawdopodobieństwa, wówczas analiza ROC oparta na LOO-CV nie jest właściwa.

benhamner
źródło