关于precision、recall、ap、PRC曲线、ROC曲线及AUC等参数的说明
2018-11-19 16:54
113 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42288056/article/details/84252127
原本的代码voc_eval.py给出了prec、rec以及ap的值,在此基础上绘制了PRC曲线、ROC曲线及计算AUC等参数。参考了Faster R-CNN/R-FCN里mAP的计算过程(voc_eval.py解析)
prec:它计算的是所有"正确被检索的item(TP)"占所有"实际被检索到的(TP+FP)"的比例
rec:它计算的是所有"正确被检索的item(TP)"占所有"应该检索到的item(TP+FN)"的比例
要想查看prec及rec的值,在voc_dataset_evaluator.py中_do_python_eval添加以下, 代码注意缩进
[code] logger.info('REC for {} = {:.4f}'.format(cls, rec[-1])) logger.info('PREC for {} = {:.4f}'.format(cls, prec[-1]))
PRC曲线:横坐标为rec,纵坐标为prec,积分面积为ap
同样在上述位置添加
[code] pl.plot(rec, prec, lw=2, label='Precision-recall curve of class {} (area = {:.4f})' ''.format(cls, ap)) pl.xlabel('Recall') pl.ylabel('Precision') plt.grid(True) pl.ylim([0.0, 1.05]) pl.xlim([0.0, 1.0]) pl.title('Precision-Recall') pl.legend(loc="upper right") plt.show()
这是我的PRC曲线:
ROC曲线:横坐标FPR,纵坐标TPR,其值与REC相同,曲线积分面积为AUC,这一点与PRC曲线类似,AUC越大说明训练的模型性能越好。其中, 曲线的横坐标FPR为假正例率,在voc_eval.py中,tn+fp可由nd-npos得到。
[code] an=nd - npos fpr=fp/an
要计算AUC的值,得编写添加一个函数voc_auc
[code]def voc_auc(rec,fpr): mrec = np.concatenate(([0.], rec, [1.])) mfpr = np.concatenate(([0.], fpr, [0.])) for l in range(mfpr.size - 1, 0, -1): mfpr[l - 1] = np.maximum(mfpr[l - 1], mfpr[l]) l = np.where(mrec[1:] != mrec[:-1])[0] auc = np.sum((mrec[l + 1] - mrec[l]) * mfpr[l + 1]) return auc
从而调用这个函数就可得到AUC值。
绘图命令还是在voc_dataset_evaluator.py中添加
[code] pl.plot(fpr, rec, lw=2, label='fpr-tpr curve of class {} (area = {:.4f})' ''.format(cls, auc)) pl.xlabel('FPR') pl.ylabel('TPR') plt.grid(True) pl.ylim([0.0, 1.05]) pl.xlim([0.0, 1.0]) pl.title('FPR-TPR') pl.legend(loc="upper right") plt.show()
我的ROC曲线
相关文章推荐
- ROC曲线,PR曲线,F1值和AUC概念解释及举例说明
- 机器学习二分类模型评估,用matplotlib绘制precision-recall曲线、ROC曲线
- 精确率(准确率、查准率、precision)、召回率(查全率、recall)、RoC曲线、AUC面积、PR曲线
- 机器学习常见的几种评价指标:精确率(Precision)、召回率(Recall)、F值(F-measure)、ROC曲线、AUC、准确率(Accuracy)
- 机器学习评估指标:Precision、recall、F-measure、Accuracy、ROC曲线和AUC
- python绘制precision-recall曲线、ROC曲线
- PR曲线,ROC曲线,AUC指标等,Accuracy vs Precision
- 机器学习算法评价指标 recall(召回率)、precision(精度)、F-measure(F值)、ROC曲线、RP曲线
- Precision/Recall、ROC/AUC、AP/MAP等概念区分
- ROC曲线和PR(Precision-Recall)曲线的联系
- ROC曲线、AUC、Precision、Recall、F-measure理解及Python实现
- 关于precision-recall曲线下降特性的探讨
- [置顶] TP,TN,FP,FN,Precision,Recall,sensitivity,specificity,FPR,TPR,F1值,ROC曲线,PR曲线的解释
- ROC曲线和PR(Precision-Recall)曲线的联系
- PR曲线,ROC曲线,AUC指标等,Accuracy vs Precision
- 关于ssh 配置文件的参数说明
- 关于snmpwalk -t TIMEOUT 参数说明
- 关于python netsnmp模块 snmpwalk工具 timeout参数说明
- NLP数据预处理(中英文)& 召回率、准确率、ROC曲线、AUC、PR曲线
- Precision/Recall和ROC曲线原理以及Matlab源码