Apakah Average Precision (AP) area di bawah Precision-Recall Curve (AUC dari PR-curve)?
EDIT:
berikut adalah beberapa komentar tentang perbedaan dalam PR AUC dan AP.
AUC diperoleh dengan interpolasi trapesium dari presisi. Metrik alternatif dan biasanya hampir setara adalah Average Precision (AP), yang dikembalikan sebagai info.ap. Ini adalah rata-rata presisi yang diperoleh setiap kali sampel positif baru dipanggil kembali. Ini sama dengan AUC jika presisi diinterpolasi oleh segmen konstan dan merupakan definisi yang paling sering digunakan oleh TREC.
http://www.vlfeat.org/overview/plots-rank.html
Selain itu, AUC dan average_precision_score hasilnya tidak sama di scikit-belajar. Ini aneh, karena dalam dokumentasi yang kami miliki:
Hitung presisi rata-rata (AP) dari skor prediksi Skor ini sesuai dengan area di bawah kurva presisi-recall.
ini kodenya:
# 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')
untuk classifer saya, saya punya sesuatu seperti:
Area Under PR Curve(AP): 0.65
AP 0.676101781304
AP 0.676101781304
AP 0.676101781304
AP 0.676101781304