Używając sklearn.metrics w Pythonie, obliczyłem średnią precyzję (ze średnią_precision_score) i precyzją (z klasyfikacją_report) podczas testowania metryk modelu. Jednak otrzymałem różne odpowiedzi (odpowiednio 0,89 vs 0,93). Przeczytałem dokumentację obu i wiem, że równania są różne, ale miałem nadzieję uzyskać intuicyjne wyjaśnienie różnic między nimi i kiedy używać jednego nad drugim.
Komentarze
- Ludziom będzie trudno się tym zająć. Powinieneś podać link do dokumentacji, z którą masz problemy z interpretacją, & skopiuj określony tekst / równania, których ' nie rozumiesz. Itd. Musisz podać wystarczający kontekst, aby można było to zinterpretować. Chcemy, aby wątki działały tutaj samodzielnie.
- ten artykuł zawiera szczegółowy opis z przykładami Rozkład średniej średniej precyzji (mAP)
Odpowiedź
Precyzja odnosi się do precyzji przy określonym progu decyzyjnym. Na przykład, jeśli jakikolwiek model wyjściowy mniejszy niż 0,5 zostanie uznany za ujemny, a większy niż 0,5 za dodatni. Ale czasami (szczególnie jeśli twoje klasy nie są zbalansowane lub jeśli chcesz przedkładać precyzję nad przywoływanie lub odwrotnie), możesz chcieć zmienić ten próg. Średnia precyzja zapewnia średnią precyzję przy wszystkich takich możliwych progach, która jest również podobna do obszaru pod krzywą precyzji i przypominania. Jest to przydatna miara do porównywania, jak dobrze modele porządkują prognozy bez uwzględniania żadnego konkretnego progu decyzyjnego.
Odniesienie: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.average_precision_score.html
Odpowiedź
Precyzja to Pr = TP / (TP + FP), gdzie to TP a FP to prawdziwie pozytywne i fałszywie pozytywne wartości. Dlatego używamy tej metryki do oceny systemów takich jak klasyfikatory, aby wiedzieć, jak dokładnie znaleźliśmy pozytywy. jeśli Twój klasyfikator oznaczył wpis jako True, nawet jeśli w rzeczywistości jest on fałszywy, zwiększa on FP, co z kolei zmniejsza Pr. Więc twój system nie jest precyzyjny. więc w przypadku klasyfikatorów nie musimy wiedzieć, który wpis ma największe prawdopodobieństwo przynależności do klasy lub podobnych rzeczy.
Powiedzmy, że utworzyłeś aplikację, która wyszukuje muzykę filmy. tak więc, jeśli zapytanie dotyczy utworu (powiedzmy, że chcę się uwolnić), jeśli pierwsze 5 znalezionych pozycji z zapytania nie jest w ogóle związanych z piosenką lub zespołem „Queen”, a wpisy od 6 do 10 są powiązane dla nich twoja aplikacja jest kompletnym marnotrawstwem. więc w tych przypadkach, w których kolejność ma znaczenie, obliczamy precyzję i przypominanie (Re = TP / (TP + FN)), a obszar pod krzywą to MAP (średnia średnia precyzja)
Intuicja stojąca za idea jest następująca, ponieważ liczba prawdziwych wpisów w rzeczywistych jest ustalona, przejście do następnego wpisu albo zwiększa przywołanie (gdy napotkasz prawdziwie dodatni), albo utrzymuje to samo (gdy napotkasz fałszywie dodatni), gdzie precyzja maleje ( jeśli napotkano FP) i pozostaje taka sama lub wzrasta (jeśli napotkano TP), więc jeśli uzyskasz nieistotne wyniki na początku, precyzja pozostaje prawie 0, co sprawia, że twój MAP 0, gdzie tak jakbyś znalazł wszystkie dokładne wyniki start (co w zasadzie oznacza zero PR), więc precyzja jest bliska 1, daje MAP bliskie 1., co potwierdza, że twój system jest najlepszy
ten artykuł zawiera szczegółowy opis z przykładami