机器学习实战---详解模型评价指标

作者:王千发

编辑:王抒伟

全篇概述:

对于分类算法,我们熟知的评价指标是准确率(accuracy),但是在实际问题中,我们想要得到一个优秀的模型,仅仅使用准确率是不够的。

比如在,乳腺癌数据集中:

其中201名没有复发(标记为0),85名复发(标记为1)。

显然这是一个不平衡数据集,假如我们的分类模型将所有的患者都预测为未复发,那么这个模型的准确率是(201/286)*100%也就是70.28%,这是一个比较高的准确率了。

但是这样的模型实际上是很差的,将所有的复发的人都预测为不会复发,那么患者得到这个信息之后如果不去检查和治疗,会导致疾病恶化甚至是出现生命危险。

因此,对于这类不平衡数据集,我们需要引入其他评价指标,分类模型的评价指标主要有准确率(accuracy),召回率(recall),精确率(precision),F1-Measure,ROC曲线和AUC等

说明一:

分析:

我们只讨论二值分类器。对于上面乳腺癌数据集来说,假如分类器的预测结 果是将201个未复发患者中190个预测为未复发,21个预测为复发;85个复发患 者中,80个预测为复发,5个预测为未复发,可以得到如下一张表

这就是所谓的混淆矩阵(Confusion Matrix),通过混淆矩阵,我们很容易能够得到这几个值,TP=80,FN=5,FP=21,TN=190。

那么准确率的公式就是A=(TP+TN)/(TP+FN+FP+TN)*100%,召回率的公式是R=TP/(TP+FN)*100%,精确率的公式为P=TP/(TP+FP)*100%。

其中,准确率描述的是所有被预测的结果中预测正确的比例,召回率描述的是所有实际为正类的被预测为正类的比例(有一部分会被预测为负类),而精确率描述的是在预测为正类的结果中(有一部分实际上为负类)。

实际上是确实是正类的比例。而F1值是召回率和精确率的调和均值,也就是F=2*P*R/(P+R),是综合了二者之后的评价模型的指标。

说明二:ROC曲线和AUC值

接下来介绍ROC曲线和AUC值,下面是ROC曲线的示例:

正如我们从示例图中看到的,ROC

曲线的横坐标为false positive rate(FPR),纵坐标为true positive rate(TPR)。其中,FPR=FP/(FP+TN)负样本的判错率,TPR=TP/(TP+FN)正样本的判对率,接下来我们考虑ROC曲线图中的四个点和一条线。

第一个点,(0,1),即FPR=0, TPR=1,这意味着FN(false negative)=0,并且FP(false positive)=0。Wow,这是一个完美的分类器,它将所有的样本都正确分类。

第二个点,(1,0),即FPR=1,TPR=0,类似地分析可以发现这是一个最糟糕的分类器,因为它成功避开了所有的正确答案。第三个点,(0,0),即FPR=TPR=0,即FP(false positive)=TP(truepositive)=0,可以发现该分类器预测所有的样本都为负样本(negative)。

类似的,第四个点(1,1),分类器实际上预测所有的样本都为正样本。经过以上的分析,我们可以断言,ROC曲线越接近左上角,该分类器的性能越好,也就是说,ROC曲线所包围的面积越大,分类器的性能越好。

说明三:如何画ROC曲线

对于分类器而言,都有概率输出的功能,拿逻辑回归来举例,我们得到的是该样本属于正样本的概率和属于负样本的概率,属于正样本的概率大,那么就判为正类,否则判为负类,那么实质上这里的阈值是0.5。

假如我们有20个样本,“Class”一栏表示每个测试样本真正的标签(p表示正样本,n表示负样本),“Score”表示每个测试样本属于正样本的概率

分析:

第一行就是说样本1,实际是正样本,分类器认为它属于正样本的概率为0.9。接下来将score按照从大到小排列,依次作为阈值,那么我们能够得到20组(FPR,TPR)的坐标,绘制出来的图像就是ROC曲线。

比如,首先是将1作为阈值,属于正类的概率大于1才会被判为正类,那么FPR=TPR=0,以此类推。

AUC(AreaUnder Curve)被定义为ROC曲线下的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。

使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。以上这些指标和ROC曲线绘制,通过sklearn包中metrics模块都可以比较容易实现。

说明四:总结

回到乳腺癌复发预测问题中,我们知道了仅仅使用准确率来评价模型是不够的,我们要计算出模型的召回率和精确率,在这个问题中,我们可以容忍FP,也就是将不会复发预测为会复发,大不了进行医学检查后发现不会复发。

但是不能容忍FN,也就是将会复发的患者预测为不会复发,这会带来很严重的后果。

也就是说我们希望召回率越大越好,尽量所有的正类都被预测为正类,精确率要求不那么高,即使负类被预测为正类也是可以的,那么我们就可以牺牲精确率来提升召回率。

首先可以画出分类器的ROC曲线来判断分类器本身的性能,ROC曲线越靠左上角,AUC值越接近1,分类器效果越好。

改变分类器的阈值,来提升模型的召回率,一般来说会牺牲精确率,不过是可以接受的,这样就可以将一个比较差的模型改造为一个可以使用的模型。

但是在实际中需要根据实际情况分析,比如我们要做的是垃圾邮件判断,那么此时召回率就不如精确率重要了,万一把重要邮件判断为垃圾邮件,还是比较棘手的。

说明五:参考资料

  1. https://machinelearningmastery.com/classification-accuracy-is-not-enough-more-performance-measures-you-can-use/
  2. http://alexkong.net/2013/06/introduction-to-auc-and-roc/
  3. https://blog.argcv.com/articles/1036.c

本文函数都是深度学习常用的激活函数当然还有其它的,大家可以维基百科!

原文发布于微信公众号 - 机器学习算法全栈工程师(Jeemy110)

原文发表时间:2017-10-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

CNN 中千奇百怪的卷积方式大汇总

推荐另一篇很好的总结:变形卷积核、可分离卷积?卷积神经网络中十大拍案叫绝的操作。 这篇总结很专业,并且很好的回答了评论中的疑问: Depthwise Separ...

3425
来自专栏GAN&CV

DCGAN、WGAN、WGAN-GP、LSGAN、BEGAN原理总结及对比

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25737169/article/d...

663
来自专栏AI研习社

博客 | 基于深度学习的目标检测算法综述(二)

目标检测(Object Detection)是计算机视觉领域的基本任务之一,学术界已有将近二十年的研究历史。近些年随着深度学习技术的火热发展,目标检测算法也从基...

313
来自专栏小樱的经验随笔

灰色理论预测模型

灰色理论 通过对原始数据的处理挖掘系统变动规律,建立相应微分方程,从而预测事物未来发展状况。  优点:对于不确定因素的复杂系统预测效果较好,且所需样本数据较小...

3416
来自专栏CVer

大牛分享 | 基于深度学习的目标检测算法综述(二)

1. Two/One stage算法改进。这部分将主要总结在two/one stage经典网络上改进的系列论文,包括Faster R-CNN、YOLO、SSD等...

720
来自专栏磐创AI技术团队的专栏

干货 | 基于深度学习的目标检测算法综述(二)

目标检测(Object Detection)是计算机视觉领域的基本任务之一,学术界已有将近二十年的研究历史。近些年随着深度学习技术的火热发展,目标检测算法也从基...

572
来自专栏AI科技评论

干货 | 基于深度学习的目标检测算法综述(二)

目标检测(Object Detection)是计算机视觉领域的基本任务之一,学术界已有将近二十年的研究历史。近些年随着深度学习技术的火热发展,目标检测算法也从基...

492
来自专栏机器学习算法全栈工程师

GAN系列学习(2)——前生今世

作者:刘威威 编辑:李文臣 本文是GAN系列学习--前世今生第二篇,在第一篇中主要介绍了GAN的原理部分,在此篇文章中,主要总结了常用的GAN包括...

4025
来自专栏机器之心

学界 | FAIR新一代无监督机器翻译:模型更简洁,性能更优

1186
来自专栏MelonTeam专栏

【译】关于深度神经网络必须知道的一些技巧(上)

翻译自魏秀参博士的文章:Must Know Tips/Tricks in Deep Neural Networks ? | 深度神经网络,特别是卷积...

2146

扫描关注云+社区