Ist Average Precision (AP) der Bereich unter Precision-Recall Curve (AUC der PR-Kurve)?
BEARBEITEN:
Hier ist ein Kommentar zum Unterschied zwischen PR AUC und AP.
Die AUC wird durch trapezförmige Interpolation der Präzision erhalten. Eine alternative und in der Regel fast äquivalente Metrik ist die Average Precision (AP), die als info.ap zurückgegeben wird. Dies ist der Durchschnitt der Genauigkeit, die bei jedem Abruf einer neuen positiven Probe erhalten wird. Es ist dasselbe wie die AUC, wenn die Genauigkeit durch konstante Segmente interpoliert wird und die Definition von TREC am häufigsten verwendet wird.
http://www.vlfeat.org/overview/plots-rank.html
Darüber hinaus stimmen die Ergebnisse von auc und average_precision_score beim Lernen mit Scikits nicht überein. Das ist seltsam, denn in der Dokumentation haben wir:
Berechnen Sie die durchschnittliche Genauigkeit (AP) aus den Vorhersagewerten. Diese Bewertung entspricht der Fläche unter der Genauigkeits-Rückruf-Kurve.
Hier ist der Code:
# Compute Precision-Recall and plot curve
precision, recall, thresholds = precision_recall_curve(y_test, clf.predict_proba(X_test)[:,1])
area = auc(recall, precision)
print "Area Under PR Curve(AP): %0.2f" % area #should be same as AP?
print 'AP', average_precision_score(y_test, y_pred, average='weighted')
print 'AP', average_precision_score(y_test, y_pred, average='macro')
print 'AP', average_precision_score(y_test, y_pred, average='micro')
print 'AP', average_precision_score(y_test, y_pred, average='samples')
für meinen schüler habe ich so etwas wie:
Area Under PR Curve(AP): 0.65
AP 0.676101781304
AP 0.676101781304
AP 0.676101781304
AP 0.676101781304
the average of the precision obtained every time a new positive sample is recalled
bezieht sich auf die interpolierte Durchschnittsgenauigkeit , die in dem von mir angegebenen Link erläutert wurde. Einige Autoren wählen eine alternative Näherung, die als interpolierte Durchschnittsgenauigkeit bezeichnet wird . Verwirrenderweise nennen sie es immer noch durchschnittliche Präzision.average_precision_score
Funktion erwarten Vertrauen oder Wahrscheinlichkeit als zweiten Parameter.also solltest du es wie folgt benutzen,
und dann ist es das gleiche Ergebnis der
auc
Funktion.quelle