平均精度(AP)是精度调用曲线(PR曲线的AUC)下的面积吗?
编辑:
这里有一些关于PR AUC和AP差异的评论。
AUC通过精度的梯形插值获得。另一种通常通常等效的指标是平均精度(AP),以info.ap返回。这是每次召回新的阳性样本时获得的精度平均值。如果精度是由常数段内插的,则它与AUC相同,并且是TREC最常使用的定义。
http://www.vlfeat.org/overview/plots-rank.html
此外,scikit-learn中的auc和average_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