机器学习模型的一些指标:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、平均精度(Average precision)、mAP 和交并比(IoU)

  • Post author:
  • Post category:其他


前段时间在看机器学习中的相关东西,其中有些术语如精确率、召回率、平均精度和交并比,于是在网上查呀,一大堆资料,看的是有些绕,感觉主要是好多中文blog和文章说的不清楚,最后查看了wiki和一篇外文结合一些中文blog算是比较清楚了。由于这些blog和文献都说的比较好也全,在此就不重复抄袭了,我把参阅的文章和blog链接一并放置在此并做些说明。

1、

https://blog.csdn.net/hysteric314/article/details/54093734#commentsedit

这篇blog是翻译这篇外文blog:

https://sanchom.wordpress.com/tag/average-precision/

大体看了下,感觉翻译的很好(除个别翻译的有些别扭,感觉那篇外文有些地方写的也有点别扭),这篇介绍的很全面也很详细,而且举了一个生动的示例,很容易理解

2、

http://www.cnblogs.com/xuexuefirst/p/8858274.html

这篇blog讲的很不错,特别是陈述了一些不平衡数据的问题,还有混淆矩阵等

3、

https://en.wikipedia.org/wiki/Precision_and_recall

这是wiki上关于精度和召回率的一些解释说的很好,blog 2中的混淆矩阵感觉就来自其中。说实话我也不是太想wiki一下毕竟一大堆英文,但百度关于这个是在说的不好

4、有关准确率和精度的相关的文章链接

1)

https://celebrating200years.noaa.gov/magazine/tct/tct_side1.html(这篇外文用一个射击实例生动的阐述了两者的不同)

2)

https://blog.csdn.net/lingyunxianhe/article/details/88377997 (这是 1)的译文)

3)

https://en.wikipedia.org/wiki/Accuracy_and_precision

4)

https://blog.csdn.net/wokaowokaowokao12345/article/details/72830242

5)

http://www.cnblogs.com/zhizhan/p/4870429.html


这个需要特别说一下,我的理解:

准确率

是针对全体评估数据集的,而

精确率

是针对你需要检出正样本中局部数据集的,这里的局部数据集是你的模型检出的那部分数据,你检出的数据一定小于等于


全体评估数据集的。准确率是检测结果相对真实结果(ground truth)而言,而精确率是相对检测结果彼此之间而言

5、

https://en.wikipedia.org/wiki/Evaluation_of_binary_classifiers

6、

https://github.com/rafaelpadilla/Object-Detection-Metrics


这篇外文和工程,用一个实例很好的说明了AP的计算过程(有11点法和逐点法)有图有真相,还有代码非常值得一看

7、

https://www.cnblogs.com/sddai/p/12181023.html


mAP的代码实现及分析

这个博客比较详细的解释了voc_eval.py代码。个人感觉最重要说明了:对于某个recall值r,precision值取所有recall>r中的最大值(这样保证了p-r曲线是单调递减的,避免曲线出现摇摆)

最后还是上一张wiki有关这几个术语的定义的截图:



版权声明:本文为lingyunxianhe原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。