“没有测量,就没有科学。”这是科学家门捷列夫的名言。在计算机科学中,特别是在机器学习的领域,对模型的测量和评估一样相当重要。只有选择与问题相匹配的评估方法,咱们才可以快速的发如今模型选择和训练过程当中可能出现的问题,迭代地对模型进行优化。本文将总结机器学习最多见的模型评估指标,其中包括:html
看一看下面这个例子:假定瓜农拉来一车西瓜,咱们用训练好的模型对这些西瓜进行判别,显然咱们可使用错误率来衡量有多少比例的瓜被判别错误。但若是咱们关心的是“挑出的西瓜中有多少比例是好瓜”,或者“全部好瓜中有多少比例被挑出来了”,那么错误率显然就不够用了,这时咱们须要引入新的评估指标,好比“查准率”和查全率更适合此类需求的性能度量。机器学习
在引入查全率和查准率以前咱们必须先理解到什么是混淆矩阵(Confusion matrix)。这个名字起得是真的好,初学者很容易被这个矩阵搞得晕头转向。下图a就是有名的混淆矩阵,而下图b则是由混淆矩阵推出的一些有名的评估指标。性能
咱们首先好好解读一下混淆矩阵里的一些名词和其意思。根据混淆矩阵咱们能够获得TP,FN,FP,TN四个值,显然TP+FP+TN+FN=样本总数。这四个值中都带两个字母,单纯记忆这四种状况很难记得牢,咱们能够这样理解:第一个字母表示本次预测的正确性,T就是正确,F就是错误;第二个字母则表示由分类器预测的类别,P表明预测为正例,N表明预测为反例。好比TP咱们就能够理解为分类器预测为正例(P),并且此次预测是对的(T),FN能够理解为分类器的预测是反例(N),并且此次预测是错误的(F),正确结果是正例,即一个正样本被错误预测为负样本。咱们使用以上的理解方式来记住TP、FP、TN、FN的意思应该就再也不困难了。,下面对混淆矩阵的四个值进行总结性讲解:学习
Precision指标在中文里能够称为查准率或者是精确率,Recall指标在中卫里常被称为查全率或者是召回率,查准率 P和查全率 R分别定义为:优化
查准率P和查全率R的具体含义以下:翻译
这里想强调一点,precision和accuracy(正确率)不同的,accuracy针对全部样本,precision针对部分样本,即正确的预测/总的正反例:3d
查准率和查全率是一对矛盾的度量,通常而言,查准率高时,查全率每每偏低;而查全率高时,查准率每每偏低。咱们从直观理解确实如此:咱们若是但愿好瓜尽量多地选出来,则能够经过增长选瓜的数量来实现,若是将全部瓜都选上了,那么全部好瓜也必然被选上,可是这样查准率就会越低;若但愿选出的瓜中好瓜的比例尽量高,则只选最有把握的瓜,但这样不免会漏掉很多好瓜,致使查全率较低。一般只有在一些简单任务中,才可能使查全率和查准率都很高。htm
再说PRC, 其全称就是Precision Recall Curve,它以查准率为Y轴,、查全率为X轴作的图。它是综合评价总体结果的评估指标。因此,哪总类型(正或者负)样本多,权重就大。也就是一般说的『对样本不均衡敏感』,『容易被多的样品带走』。blog
上图就是一幅P-R图,它能直观地显示出学习器在样本整体上的查全率和查准率,显然它是一条整体趋势是递减的曲线。在进行比较时,若一个学习器的PR曲线被另外一个学习器的曲线彻底包住,则可断言后者的性能优于前者,好比上图中A优于C。可是B和A谁更好呢?由于AB两条曲线交叉了,因此很难比较,这时比较合理的判据就是比较PR曲线下的面积,该指标在必定程度上表征了学习器在查准率和查全率上取得相对“双高”的比例。由于这个值不容易估算,因此人们引入“平衡点”(BEP)来度量,他表示“查准率=查全率”时的取值,值越大代表分类器性能越好,以此比较咱们一会儿就能判断A较B好。ci
BEP仍是有点简化了,更经常使用的是F1度量:
F1-score 就是一个综合考虑precision和recall的指标,比BEP更为经常使用。
ROC全称是“受试者工做特征”(Receiver Operating Characteristic)曲线,ROC曲线以“真正例率”(TPR)为Y轴,以“假正例率”(FPR)为X轴,对角线对应于“随机猜想”模型,而(0,1)则对应“理想模型”。ROC形式以下图所示。
TPR和FPR的定义以下:
从形式上看TPR就是咱们上面提到的查全率Recall,而FPR的含义就是:全部确实为“假”的样本中,被误判真的样本。
进行学习器比较时,与PR图类似,若一个学习器的ROC曲线被另外一个学习器的曲线包住,那么咱们能够断言后者性能优于前者;若两个学习器的ROC曲线发生交叉,则难以通常性断言二者孰优孰劣。此时若要进行比较,那么能够比较ROC曲线下的面积,即AUC,面积大的曲线对应的分类器性能更好。
AUC(Area Under Curve)的值为ROC曲线下面的面积,若分类器的性能极好,则AUC为1。但现实生活中尤为是工业界不会有如此完美的模型,通常AUC均在0.5到1之间,AUC越高,模型的区分能力越好,上图AUC为0.81。若AUC=0.5,即与上图中红线重合,表示模型的区分能力与随机猜想没有差异。若AUC真的小于0.5,请检查一下是否是好坏标签标反了,或者是模型真的不好。
这种问题的答案固然是具体问题具体分析啦,单纯地回答谁好谁坏是没有意义的,咱们须要结合实际场景给出合适的回答。
考虑下面是两个场景,由此看出不一样场景下咱们关注的点是不同的:
ROC和PRC在模型性能评估上效果都差很少,但须要注意的是,在正负样本分布得极不均匀(highly skewed datasets)的状况下,PRC比ROC能更有效地反应分类器的好坏。在数据极度不平衡的状况下,譬如说1万封邮件中只有1封垃圾邮件,那么若是我挑出10封,50封,100...封垃圾邮件(假设咱们每次挑出的N封邮件中都包含真正的那封垃圾邮件),Recall都是100%,可是FPR分别是9/9999, 49/9999, 99/9999(数据都比较好看:FPR越低越好),而Precision却只有1/10,1/50, 1/100 (数据不好:Precision越高越好)。因此在数据很是不均衡的状况下,看ROC的AUC多是看不出太多好坏的,而PR curve就要敏感的多。
上面讨论的是分类任务中的评价指标,这里想简单讲讲目标检测任务中经常使用的评价指标:IOU(Intersection over Union),中文翻译为交并比。
这里是一个实际例子:下图绿色框是真实感兴趣区域,红色框是预测区域,这种状况下交集确实是最大的,可是红色框并不能准确预测物体位置。由于预测区域老是试图覆盖目标物体而不是正好预测物体位置。这时若是咱们能除以一个并集的大小,就能够规避这种问题。这就是IOU要解决的问题了。
下图表示了IOU的具体意义,即:预测框与标注框的交集与并集之比,数值越大表示该检测器的性能越好。
使用IOU评价指标后,上面提到的问题一会儿解决了:咱们控制并集不要让并集太大,对准确预测是有益的,这就有效抑制了“一味地追求交集最大”的状况的发生。下图的2,3小图就是目标检测效果比较好的状况。
参考资料:https://www.cnblogs.com/skyfsm/p/8467613.html