Python 我能';t绘制以下数据:(精度召回曲线)
嗨,我正在尝试使用以下数据绘制召回精度曲线:Python 我能';t绘制以下数据:(精度召回曲线),python,statistics,precision-recall,Python,Statistics,Precision Recall,嗨,我正在尝试使用以下数据绘制召回精度曲线: Recall Precision 0.88196 0.467257 0.898501 0.468447 0.89899 0.470659 0.900789 0.471653 0.900922 0.472038 0.901012 0.472359 0.901345 0.480144 0.901695 0.482353 0.902825 0.482717 0.903261 0.483125
Recall Precision
0.88196 0.467257
0.898501 0.468447
0.89899 0.470659
0.900789 0.471653
0.900922 0.472038
0.901012 0.472359
0.901345 0.480144
0.901695 0.482353
0.902825 0.482717
0.903261 0.483125
0.905152 0.483621
0.905575 0.485088
0.905682 0.486339
0.906109 0.488117
0.906466 0.488459
0.90724 0.488587
0.908989 0.488875
0.909941 0.489362
0.910125 0.489493
0.910314 0.490196
0.910989 0.49022
0.91106 0.490786
0.911137 0.496624
0.91129 0.496891
0.911392 0.497301
0.911392 0.499379
0.911422 0.5
0.911452 0.503783
0.911525 0.515829
源代码:
import random
import pylab as pl
from sklearn import svm, datasets
from sklearn.metrics import precision_recall_curve
from sklearn.metrics import auc
##Load Recall
fname = "recall.txt"
fname1 = "precision.txt"
recall = []
precision = []
with open(fname) as inf:
for line in inf:
recall.append(float(line))
with open(fname1) as inf:
for line in inf:
precision.append(float(line))
area = auc(recall, precision)
print("Area Under Curve: %0.2f" % area)
pl.clf()
pl.plot(recall, precision, label='Precision-Recall curve')
pl.xlabel('Recall')
pl.ylabel('Precision')
pl.ylim([0.0, 1.05])
pl.xlim([0.0, 1.0])
pl.title('Precision-Recall example: AUC=%0.2f' % area)
pl.legend(loc="lower left")
pl.show()
我得到AUC=0.01下的面积,这正常吗
这似乎是正确的答案
使用
numpy.trapz(精确,回忆)
我得到AUC=0.014036223712000031
这就是我在@plover的想法。谢谢你我真的弄错了