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