Met sklearn.metrics in Python heb ik de gemiddelde precisie (met gemiddelde_precisie_score) en precisie (met classificatie_rapport) berekend tijdens het testen van modelstatistieken. Ik kreeg echter verschillende antwoorden (respectievelijk 0,89 versus 0,93). Ik heb de documentatie voor beide gelezen en weet dat de vergelijkingen anders zijn, maar ik hoopte een intuïtieve uitleg te krijgen over de verschillen tussen de twee en wanneer ik de ene boven de andere zou gebruiken.
Opmerkingen
- Dit zal moeilijk zijn voor mensen om aan te pakken. U dient te linken naar de documentatie die u moeilijk kunt interpreteren, & kopieer de specifieke tekst / vergelijkingen die u niet ' begrijpt. Enz. U moet voldoende context bieden om dit interpreteerbaar te maken. We willen dat threads hier op zichzelf staan.
- dit artikel geeft een gedetailleerde beschrijving met voorbeelden Gemiddelde gemiddelde precisie (mAP) uitgesplitst
Antwoord
Precisie verwijst naar precisie bij een bepaalde beslissingsdrempel. Als u bijvoorbeeld een modeluitvoer van minder dan 0,5 als negatief meetelt en groter dan 0,5 als positief. Maar soms (vooral als je lessen niet in balans zijn, of als je precisie wilt verkiezen boven terugroepen of vice versa), wil je misschien deze drempel variëren. Gemiddelde precisie geeft u een gemiddelde precisie bij al deze mogelijke drempels, die ook vergelijkbaar is met het gebied onder de precisieherinningscurve. Het is een nuttige statistiek om te vergelijken hoe goed modellen de voorspellingen ordenen, zonder rekening te houden met een specifieke beslissingsdrempel.
Referentie: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.average_precision_score.html
Antwoord
Precisie is Pr = TP / (TP + FP) waar is TP en FP zijn True positives en False positives. dus gebruiken we deze statistiek om systemen zoals classificaties te evalueren om te weten hoe precies we positieven hebben gevonden. als je classifier een entry True markeerde, zelfs als het in real False is, verhoogt het FP, wat op zijn beurt Pr verlaagt. Dus uw systeem is niet precies. dus, in het geval van classificaties, hoeven we niet te weten welk item de grootste kans heeft om tot een klas of iets dergelijks te behoren.
laten we zeggen dat je een app hebt gebouwd die naar muziek zoekt videos. dus, als er een vraag wordt gesteld over een nummer (laten we zeggen dat ik me wil losmaken), als de eerste 5 opgehaalde items uit de query helemaal niet gerelateerd zijn aan het nummer of de band “Queen” en items van 6 tot 10 zijn gerelateerd voor hen, dan is uw app volslagen verspilling. dus in deze gevallen waarin de volgorde ertoe doet, berekenen we precisie en terugroepen (Re = TP / (TP + FN)) en het gebied onder de curve is MAP (gemiddelde gemiddelde precisie).
De intuïtie achter de idee is als volgt, aangezien het aantal echte items in het echt is vastgesteld, verhoogt het verplaatsen naar een volgende item ofwel de terugroepactie (wanneer u echt positief tegenkomt) of houdt het hetzelfde (wanneer u een vals positief tegenkomt) waar naarmate de precisie afneemt ( als FP werd aangetroffen) en blijft hetzelfde of neemt toe (als TP werd aangetroffen), dus als je bij het begin irrelevante resultaten krijgt, blijft de precisie bijna 0, wat je MAP op 0 maakt, alsof je alle nauwkeurige resultaten bij de starten (wat in feite nul FPs betekent) dus precisie is dichtbij 1, resulteert in MAP dichtbij 1. wat uw systeem certificeert als het beste
dit artikel geeft een gedetailleerde beschrijving met voorbeelden