机器学习评价指标

总计机器学习常用的评价指标,如果错误,请指正


混淆矩阵

混淆矩阵 (confusion matrix)
VOC 2007 Error Analysis

https://towardsdatascience.com/confusion-matrix-for-your-multi-class-machine-learning-model-ff9aa3bf7826


准确率

a c c u r a y = T P T P + F P . accuray = \frac {TP}{TP + FP}. accuray=TP+FPTP.
即所有预测为postive的例子中(TP + FP),真实的postive (TP)所占的比例,分母为predicted class为postive的那一行。(说人话就是,在我所预测为postive的所有例子中,有多少是预测对了的。)


召回率

r e c a l l = T P T P + F N . recall = \frac {TP}{TP + FN}. recall=TP+FNTP.
即真实标签为postive中(TP+FN),预测也为postive(TP)的比例,分母为true class为postive的那一列。(说人话就是,所有gt标签为postive的例子,我究竟召回了多少,即预测为postive。)

举一个例子,如果公司构建内容审核平台,需要对违禁物品进行识别与检测,那么进行评测的时候,就需要参考准确率与召回率两个指标。准确率指的是,模型预测为违禁品的例子中,真正是有违规对象的例子所占的比例。召回率指的是,如果待评测的库里面有1000条违禁例子,模型在里面找出了800条,即召回率为80%. 但往往部分时候,在致命违禁的情况下,会更加注重召回率,即尽可能多地把违禁例子召回,哪怕会有一些错误召回的例子。


ROC曲线

会涉及两个概念:真阳率(true postive rate)以及假阳率(false postive rate)
其实真阳率就是recall的意思
T P r a t e = r e c a l l = T P T P + F N . TP_{rate} = recall = \frac {TP}{TP + FN}. TPrate=recall=TP+FNTP.
假阳率
F P r a t e = F P F P + T N . FP_{rate} = \frac {FP}{FP + TN}. FPrate=FP+TNFP.
TPrate的意义是所有真实类别为1的样本中,预测类别为1的比例。
FPrate的意义是所有真实类别为0的样本中,预测类别为1的比例。

VOC 2007 Error Analysis

ROC曲线(receiver operating characteristic curve)
上述指标以及ROC目前所讲的部分都是针对二分类而言的,以下内容摘自wikipedia对于ROC空间的定义以及说明:ROC

【1】 ROC空间将伪阳性率(FPR)定义为 X 轴,真阳性率(TPR)定义为 Y 轴。
【2】给定一个二元分类模型和它的阈值,就能从所有样本的(阳性/阴性)真实值和预测值计算出一个 (X=FPR, Y=TPR) 坐标点。
【3】 从 (0, 0) 到 (1,1) 的对角线将ROC空间划分为左上/右下两个区域,在这条线的以上的点代表了一个好的分类结果(胜过随机分类),而在这条线以下的点代表了差的分类结果(劣于随机分类)。
【4】 完美的预测是一个在左上角的点,在ROC空间座标 (0,1)点
【5】一个随机的预测会得到位于从 (0, 0) 到 (1, 1) 对角线(也叫无识别率线)上的一个点;
【5】离左上角越近的点预测(诊断)准确率越高。离右下角越近的点,预测越不准。

如下四个分类器在ROC空间上做图,可以得到下面的图像。
VOC 2007 Error Analysis
VOC 2007 Error Analysis

【1】在A、B、C三者当中,最好的结果是A方法。
【2】B方法的结果位于随机猜测线(对角线)上,在例子中我们可以看到B的准确度(ACC,定义见前面表格)是50%。
【3】C虽然预测准确度最差,甚至劣于随机分类,也就是低于0.5(低于对角线)。然而,当将C以 (0.5, 0.5) 为中点作一个镜像后,C’的结果甚至要比A还要好。这个作镜像的方法,简单说,不管C(或任何ROC点低于对角线的情况)预测了什么,就做相反的结论。

ROC曲线的横坐标和纵坐标其实是没有相关性的,所以不要把它当作一个常规的函数曲线来分析,而应该把其视作无数个点,每个点对应一个分类器,其横纵坐标表示其分类的能力。


AUC

定义

AUC是area under curve的简写,即曲线下的面积,那么这条curve是什么呢?
这条曲线就是ROC曲线,其横坐标为假阳率FPrate,纵坐标为真阳率TPrate,AUC就是ROC曲线所包裹的下方面积。对于随机分类器,位于在ROC曲线的y=x的对角线上,即TPrate等于FPrate,而实际上我们想要的分类器,总是想让TPrate > FPrate,即对于真实类别为1的样本,分类器预测为1的概率(即TPrate),要大于真实类别为0而预测类别为1的概率(即FPrate),即总在y=x的上方。(当然位于y=x下方,取镜像即可得到一个AUC>0.5的分类器。)

当然,在我们实际进行二分类模型中,输出往往不是一个0,1的硬编码值,而是一个置信度得分,因此往往需要一个阈值threshold来决定样例预测为1还是0。因此不同的threshold也就能得到不同的混淆矩阵,进而得到不同的(FPrate, TPrate),故可以在ROC空间进行描点,进行连线就可以得到ROC曲线,进而得到面积,即AUC值。

AUC的优势:https://www.zhihu.com/question/39840928/answer/241440370

AUC的计算方法同时考虑了分类器对于正例和负例的分类能力,在样本不平衡的情况下,依然能够对分类器作出合理的评价。例如在反欺诈场景,设欺诈类样本为正例,正例占比很少(假设0.1%),如果使用准确率评估,把所有的样本预测为负例,便可以获得99.9%的准确率。但是如果使用AUC,把所有样本预测为负例,TPRate和FPRate同时为0(没有Positive),与(0,0) (1,1)连接,得出AUC仅为0.5,成功规避了样本不均匀带来的问题。

算法实现

在这里插入代码片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猴猴猪猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值