Scikit-Learn

Precision-Recall 曲線下的面積(PR 曲線的 AUC)和平均精度(AP)

  • June 15, 2015

平均精度 (AP) 是精度召回曲線下的面積(PR 曲線的 AUC)嗎?

編輯:

這是關於 PR AUC 和 AP 差異的一些評論。

AUC 是通過精度的梯形插值獲得的。另一種通常幾乎等效的指標是平均精度 (AP),以 info.ap 形式返回。這是每次召回新的正樣本時獲得的精度的平均值。如果精度由常數段插值,則它與 AUC 相同,並且是 TREC 最常使用的定義。

http://www.vlfeat.org/overview/plots-rank.html

而且,scikit-learn 中的aucaverage_precision_score結果也不一樣。這很奇怪,因為在文檔中我們有:

從預測分數計算平均精度 (AP) 此分數對應於精度召回曲線下的區域。

這是代碼:

# 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')

對於我的分類器,我有類似的東西:

Area Under PR Curve(AP): 0.65
AP 0.676101781304
AP 0.676101781304
AP 0.676101781304
AP 0.676101781304

簡短的回答是:的。平均精度是用於總結 Precision-Recall 曲線的單個數字:

在此處輸入圖像描述

您可以使用以下方法近似積分(曲線下的面積):

在此處輸入圖像描述

請查看此鏈接以獲得很好的解釋。

引用自:https://stats.stackexchange.com/questions/157012

comments powered by Disqus