这里写目录标题
目标检测算法
IoU交并比
IoU 的全称为交并比(Intersection over Union), 计算的是 “预测的边框” 和 “真实的边框” 的交集和并集的比值。
如何计算IoU呢?
我们首先需要计算交集,并集通过两个边框的面积的和减去交集部分即为并集,因此 IoU 的计算的难点在于交集的计算。
两个框交集的计算的实质是两个集合交集的计算,因此我们可以将两个框的交集的计算简化为:
AP和mAP
目标检测中的mAP的计算方法:
参考链接
分类问题
预备知识:TP,TP,FP,FN
-
若一个实例是正类,但是被预测成为正类,即为真正类(True Postive TP)
-
若一个实例是负类,但是被预测成为负类,即为真负类(True Negative TN)
-
若一个实例是负类,但是被预测成为正类,即为假正类(False Postive FP)
-
若一个实例是正类,但是被预测成为负类,即为假负类(False Negative FN
首先看第一个字母是T则代表分类正确,反之分类错误;然后看P,在T中则是正类,若在F中则实际为负类分成了正的。
准确率(Accurancy)
所有的预测正确(正类负类)的占总的比重。
精确率(Precision)
查准率。(个人理解:预测为正的实例中,查对了的概率)。预测为正的正例占所有预测为正的实例(预测为正的正例+预测为正的负例)的比重。
召回率(Recall)
查全率。(个人理解:实际为正的实例中查对了的概率,即,真正的正例查出了多少)。即正确预测为正的占全部实际为正的比例。
上述三者取值在0和1之间,数值越接近1,查准率、查全率、准确率就越高也越好。
F-Score
P和R指标有时候会出现的矛盾的情况,这样就需要综合考虑他们,最常见的方法就是F-Measure(又称为F-Score)。
F-Measure是Precision和Recall加权调和平均:
当参数α=1时,就是最常见的F1-Score:
如果类别为多类,则F1-score 求均值:
平均正确率Average Precision, AP
还没看。。(mAP详解)
还没看+1(目标检测和多分类问题中的mAP比较)
mAP与AP的区别:
- AP:average precision,每一类别P值的平均值
- mAP:mean average precision,对所有类别的AP取均值
ROC曲线
ROC曲线,接收者操作特征曲线(receiver operating characteristic curve),是反映敏感性和特异性连续变量的综合指标,ROC曲线上每个点反映着对同一信号刺激的感受性。(这说的是啥啊,我也不知道)
- 曲线的横坐标为假阳率(False Positive Rate, FPR),N是真实负样本的个数,FP是N个负样本中被分类器预测为正样本的个数。
F P R = F P / ( F P + T N ) = F P / N FPR=FP/(FP+TN)=FP/N FPR=FP/(FP+TN)=FP/N - 纵坐标为真阳性率(True Positive Rate, TPR),P是真实正样本的个数,
TP是P个正样本中被分类器预测为正样本的个数。
T P R = T P / ( T P + F N ) = T P / P TPR=TP/(TP+FN)=TP/P TPR=TP/(TP+FN)=TP/P
举一个简单的例子方便大家的理解,还是刚才雷达的例子。假设现在有10个雷达信号警报,其中8个是真的轰炸机(P)来了,2个是大鸟(N)飞过,经过某分析员解析雷达的信号,判断出9个信号是轰炸机,剩下1个是大鸟,其中被判定为轰炸机的信号中,有1个其实是大鸟的信号(FP=1),而剩下8个确实是轰炸机信号(TP=8)。因此可以计算出FPR为,TPR为,而就对应ROC曲线上一点。
说到这里,想必大家已经明白这俩个指标的计算方法,再往深挖一点,可以思考一下这俩个指标背后的原理。还是雷达的例子,敏锐的雷达系统我们肯定希望它能把所有的敌方轰炸机来袭都感知到并预测出来,即TPR越高越好,但我们又不希望它把大鸟的飞过也当成轰炸机来预警,即FPR越低越好。因此,大家可以发现,这俩个坐标值其实是有相互制约的一个概念在里面。
真正的理想情况,TPR应接近1,FPR接近0,即图中的(0,1)点。ROC曲线越靠拢(0,1)点,越偏离45度对角线越好。
AUC值
AUC (Area Under Curve) 被定义为ROC曲线下的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围一般在0.5和1之间。使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。
从AUC判断分类器(预测模型)优劣的标准:
- AUC = 1,是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器。
- 0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
- AUC = 0.5,跟随机猜测一样(例:丢铜板)也就是y=x这条线,模型没有预测价值。
- AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。
- (1)曲线与FP_rate轴围成的面积(记作AUC)越大,说明性能越好,即图上L2曲线对应的性能优于曲线L1对应的性能。即:曲线越靠近A点(左上方)性能越好,曲线越靠近B点(右下方)曲线性能越差。
- (2)A点是最完美的performance点,B处是性能最差点。
- (3)位于C-D线上的点说明算法性能和random猜测是一样的–如C、D、E点。位于C-D之上(即曲线位于白色的三角形内)说明算法性能优于随机猜测–如G点,位于C-D之下(即曲线位于灰色的三角形内)说明算法性能差于随机猜测–如F点。
- (4)虽然ROC曲线相比较于Precision和Recall等衡量指标更加合理,但是其在高不平衡数据条件下的的表现仍然过于理想,不能够很好的展示实际情况
一句话来说,AUC值越大的分类器,正确率越高。
RP曲线
PR(Precision-Recall)曲线。
举个例子(例子来自Paper:Learning from eImbalanced Data):
假设N_c>>P_c(即Negative的数量远远大于Positive的数量),
若FP很大,即有很多N的sample被预测为P,因为N很大,因此FP_rate的值仍然很小(如果利用ROC曲线则会判断其性能很好,但是实际上其性能并不好),但是如果利用PR,因为Precision综合考虑了TP和FP的值,因此在极度不平衡的数据下(Positive的样本较少),PR曲线可能比ROC曲线更实用。
参考:机器学习算法中的准确率(Precision)、召回率(Recall)、F值(F-Measure)
参考:机器学习基础(1)- ROC曲线理解
准确率、精确率、召回率、F1值、ROC/AUC整理笔记