Zastanawiam się, jak obliczyć precyzję i przywołać za pomocą macierzy nieporozumień dla problemu klasyfikacji wielu klas. W szczególności obserwację można przypisać tylko do najbardziej prawdopodobnej klasy / etykiety. Chciałbym obliczyć:
- Precyzja = TP / (TP + FP)
- Recall = TP / (TP + FN)
dla każdej klasy, a następnie obliczyć mikro-uśrednioną miarę F.
Odpowiedzi:
W przypadku 2 hipotez macierz dezorientacji jest zwykle:
gdzie użyłem czegoś podobnego do twojej notacji:
Na podstawie nieprzetworzonych danych, wartości w tabeli będą zazwyczaj liczbami dla każdego wystąpienia w stosunku do danych testowych. Na tej podstawie powinieneś być w stanie obliczyć potrzebne ilości.
Edytować
Uogólnieniem na problemy wielu klas jest sumowanie ponad wierszami / kolumnami macierzy pomieszania. Biorąc pod uwagę, że macierz jest zorientowana jak powyżej, tj. Że dany wiersz macierzy odpowiada określonej wartości „prawdy”, mamy:
źródło
i
jest niezdefiniowana, jeśli nie ma instancji, w których algorytm deklarujei
. Przywołanie dla klasyi
jest niezdefiniowane, jeśli zestaw testowy nie zawiera klasyi
.Dobry dokument podsumowujący, patrząc na te wskaźniki problemów wielu klas:
Streszczenie brzmi:
źródło
Używanie sklearn i numpy:
Aby uzyskać ogólne miary precyzji i wycofania, użyj
źródło