Ved hjelp av sklearn.metrics i Python beregnet jeg gjennomsnittlig presisjon (med gjennomsnittlig_presisjon_score) og presisjon (med klassifiseringsrapport) mens jeg testet modellberegninger. Imidlertid fikk jeg forskjellige svar (henholdsvis 0,89 vs 0,93). Jeg leste dokumentasjonen for begge deler og vet at ligningene er forskjellige, men jeg håpet å få en intuitiv forklaring om forskjellene mellom de to og når jeg skulle bruke den ene over den andre.
Kommentarer
- Dette kommer til å være vanskelig for folk å ta tak i. Du bør koble til dokumentasjonen du har problemer med å tolke. & kopier den spesifikke teksten / ligningene du ikke ' ikke forstår. Etc. Du må oppgi tilstrekkelig sammenheng for at dette skal kunne tolkes. Vi vil at tråder her skal kunne stå alene.
- denne artikkelen gir en detaljert beskrivelse med eksempler Breaking Down Mean Average Precision (mAP)
Svar
Presisjon refererer til presisjon ved en bestemt beslutningsterskel. For eksempel hvis du teller en hvilken som helst modellutgang mindre enn 0,5 som negativ, og større enn 0,5 som positiv. Men noen ganger (spesielt hvis klassene dine ikke er balanserte, eller hvis du vil favorisere presisjon fremfor tilbakekalling eller omvendt), vil du kanskje variere denne terskelen. Gjennomsnittlig presisjon gir deg gjennomsnittlig presisjon ved alle slike mulige terskler, som også ligner området under kurven for presisjonsgjenkalling. Det er en nyttig beregning å sammenligne hvor godt modeller bestiller spådommer, uten å vurdere noen spesifikk beslutningsterskel.
Referanse: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.average_precision_score.html
Svar
Presisjon er Pr = TP / (TP + FP) hvor er TP og FP er sanne positive og falske positive. så vi bruker denne beregningen til å evaluere systemer som klassifikatorer for å vite hvor nøyaktig vi fant positive. hvis klassifisereren din markerte en oppføring True, selv om den er False in real, øker den FP, som igjen reduserer Pr. Så systemet ditt er ikke presist. så når det gjelder klassifikatorer trenger vi ikke å vite hvilken oppføring som har størst sannsynlighet for å tilhøre en klasse eller sånt.
hvor vi la oss si at du bygde en app som søker etter musikk videoer. så hvis det blir spurt om en sang (la oss si at jeg vil bryte fri), hvis de 5 første hentede oppføringene fra spørringen ikke er relatert til sangen eller bandet «Queen» og oppføringer fra 6 til 10 er relatert for dem, så er appen din fullstendig avfall. så i disse tilfellene hvor ordren betyr noe, beregner vi presisjon og tilbakekalling (Re = TP / (TP + FN)) og arealet under kurven er MAP (gjennomsnittlig gjennomsnittlig presisjon)
Intuisjonen bak ideen er som følger, ettersom antall sanne oppføringer i reelle er faste, flytter til en neste oppføring enten øker tilbakekallingen (når du støter på ekte positiv) eller holder den den samme (når du støter på en falsk positiv) hvor presisjonen avtar ( hvis FP ble oppdaget) og forblir den samme eller øker (hvis TP ble påtruffet), så hvis du får irrelevante resultater i starten, forblir presisjonen nesten 0, noe som gjør KARTEN din 0, der som om du finner alle de nøyaktige resultatene på starter (som i utgangspunktet betyr null FP), så presisjonen er nær 1, resulterer i MAP nær 1. som sertifiserer systemet ditt som det beste
denne artikkelen gir en detaljert beskrivelse med eksempler