Zastanawiam się, jak obliczyć miary precyzji i zapamiętywania dla wielopasmowej klasyfikacji wieloliniowej, tj. Klasyfikacji, w której występują więcej niż dwie etykiety, i gdzie każda instancja może mieć wiele etykiet?Precyzja/odwołanie dla klasyfikacji multilass-multilabel
Odpowiedz
Odpowiedź jest taka, że musisz obliczyć precyzję i przypominać o każdej klasie, a następnie je uśrednić. Na przykład. jeśli klasy A, B i C, to twoja dokładność to:
(precision(A) + precision(B) + precision(C))/3
To samo dotyczy odwołania.
Nie jestem ekspertem, ale to jest to, co ustaliliśmy na podstawie następujących źródeł:
https://list.scms.waikato.ac.nz/pipermail/wekalist/2011-March/051575.html http://stats.stackexchange.com/questions/21551/how-to-compute-precision -Przywołaj-for-multiclass-wielokategorialnym klasyfikacji
Jeśli Twoje dane mają niezbilansowaną liczbę etykiet, to uśrednianie może nie odzwierciedlać rzeczywistej wydajności. – tashuhka
- Załóżmy, że mamy 3 klasy wielofunkcyjnego problemu klasyfikacji etykietami a, B i C
- pierwszą rzeczą do zrobienia jest, aby wygenerować zamieszanie matryca. Należy zauważyć, że wartości w przekątnej są zawsze prawdziwymi pozytywami (TP).
Teraz, aby obliczyć przywołanie dla wytwórni A można odczytać wartości z macierzy zamieszanie i obliczyć:
= TP_A/(TP_A+FN_A) = TP_A/(Total gold labels for A)
Teraz, niech nam obliczyć precyzję na etykietę, można przeczytać od wartości z macierzy zamieszanie i obliczyć:
= TP_A/(TP_A+FP_A) = TP_A/(Total predicted as A)
trzeba tylko zrobić to samo dla pozostałych etykiet B i C. Dotyczy to wszelkich mU Klasyfikacja klasy lti.
Here jest pełny artykuł, który mówi o tym, jak obliczyć precyzji i przywołanie do problemu klasyfikacji multi-klasy, łącznie z przykładami.
Proste uśrednienie wystarczy, jeśli zajęcia są zrównoważone.
W przeciwnym razie przypominanie o każdej prawdziwej klasie musi być ważone według częstości występowania klasy, a dokładność każdej przewidywanej etykiety musi być ważona przez odchylenie (prawdopodobieństwo) dla każdej etykiety. Tak czy siak otrzymasz Rand Accuracy.
Bardziej bezpośredni sposób polega na utworzeniu znormalizowanej tabeli kontyngencji (podziel według N, aby tabela zawierała 1 dla każdej kombinacji etykiety i klasy) i dodaj przekątną, aby uzyskać dokładność Rand.
Ale jeśli klasy nie są zrównoważone, odchylenie pozostaje, a metoda z poprawioną szansą, taka jak kappa, jest bardziej odpowiednia lub jeszcze lepsza jest analiza ROC lub szansa na poprawną miarę, taką jak informacyjność (wysokość powyżej linii szans w ROC).
W przypadku klasyfikacji z wieloma etykietami można wybrać na dwa sposoby: Najpierw należy rozważyć następujące kwestie.
to liczba przykładów.
jest przypisanie etykiety ziemia Prawda przykład
..
jest przykładem
.
to przewidywana etykieta dla przykładu
.
przykład oparty
Dane są obliczane w jednej Datapoint sposób. Dla każdej przewidywanej etykiety obliczany jest tylko jej wynik, a następnie wyniki są agregowane dla wszystkich punktów danych.
- Precision =
, Stosunek, ile przewidywana jest poprawna. Licznik znajduje, ile etykiet w przewidywanym wektorze jest wspólnych z prawdą gruntu, a współczynnik oblicza, ile z przewidywanych prawdziwych etykiet znajduje się w rzeczywistości.
- Przypomnienie =
, Stosunek liczby rzeczywistych etykiet został przewidziany. Licznik znajduje, ile etykiet w przewidywanym wektorze jest wspólnych z prawdą podstawową (jak wyżej), a następnie znajduje stosunek do liczby rzeczywistych etykiet, a zatem określa, jaki odsetek rzeczywistych etykiet został przewidziany.
Są też inne dane.
Label opiera
Tutaj rzeczy są zrobione etykiety mądry. Dla każdej etykiety obliczane są metryki (np. Precyzja, przypominanie), a następnie te dane dotyczące etykiet są agregowane. Dlatego w tym przypadku kończy się obliczanie precyzji/odwołania dla każdej etykiety w całym zestawie danych, tak jak w przypadku binarnej klasyfikacji (ponieważ każda etykieta ma przypisanie binarne), a następnie agreguj ją.
Prostym sposobem jest przedstawienie ogólnej formy.
To tylko rozszerzenie standardowego odpowiednika wieloklasowego.
Tutaj są prawdziwymi dodatnie, fałszywie dodatnie, prawdziwe negatywne i fałszywe liczy negatywne odpowiednio tylko dla
etykiecie .
Tutaj $ B $ oznacza dowolną metrykę opartą na metodzie pomyłki. W twoim przypadku możesz podłączyć standardowe formuły precyzji i przypomnienia. W przypadku średniej makr przekazujesz liczbę za etykietę, a następnie sumę, dla średniej mikroprzedsiębiorstwa najpierw średnią liczbę, następnie stosujesz funkcję metryczną.
Użytkownik może być zainteresowany przejrzeniem kodu znaczników multilift: here, który jest częścią pakietu mldr w R. Możesz także zainteresować się biblioteką wielowalutową Java MULAN.
To jest ładny papier dostać się do różnych metryk: A Review on Multi-Label Learning Algorithms
Czy wycofanie jest równe dokładności w przypadku stosowania podejścia opartego na przykładzie dla klasyfikacji nie-wielolabkowej, ale wieloklasowej? – WetFish
Well, fałszywe byłoby jeśli nie poprawnie klasyfikować i prawdziwe gdzie został prawidłowo sklasyfikowany. Dlaczego martwisz się o wiele etykiet? –
+1 Co słychać u dołu bez komentarzy? Miałem to samo pytanie i cieszę się, że znalazłem tę stronę. @ThomasJungblut Rozumiem, jak obliczyć precyzję dla danej klasy, np. klasa A, ale jak mam obliczyć dokładność dla wszystkich klas? Czy jest to średnia arytmetyczna precyzji dla każdej klasy? –
Znalazłem podobne pytanie, może to być duplikat: http://stackoverflow.com/questions/3856013/get-recall-sensitivity-and-precision-ppv-values-of-a-multi-class-problem-in –