码迷,mamicode.com
首页 > 其他好文 > 详细

【直观详解】机器学习分类器性能指标详解

时间:2020-11-30 15:15:08      阅读:9      评论:0      收藏:0      [点我收藏+]

标签:平衡   有关   erro   var   面积   hold   工作   整合   元素   

【内容简介】系统详解分类器性能指标,什么是准确率 - Accuracy、精确率 - Precision、召回率 - Recall、F1值、ROC曲线、AUC曲线、误差 - Error、偏差 - Bias、方差 - Variance及Bias-Variance Tradeoff

在任何领域,评估(Evaluation)都是一项很重要的工作。在Machine Learning领域,定义了许多概念并有很多手段进行评估工作

1

混淆矩阵 - Confusion Matrix

确率定义:对于给定的测试数据集,分类器正确分类的样本数与总样本数的之比

通过准确率,的确可以在一些场合,从某种意义上得到一个分类器是否有效,但它并不总是能有效的评价一个分类器的工作。一个例子,Google抓取了100个特殊页面,它的索引中有10000000页面。随机抽取一个页面,这是不是特殊页面呢?如果我们的分类器确定一个分类规则:“只要来一个页面就判断为【不是特殊页面】”,这么做的效率非常高,如果计算按照准确率的定义来计算的话,是(9,999,900/10,000,000) = 99.999%。虽然高,但是这不是我们并不是我们真正需要的值,就需要新的定义标准了

对于一个二分类问题来说,将实例分为正类(Positive/+)或负类(Negative/-),但在使用分类器进行分类时会有四种情况

  • 一个实例是正类,并被预测为正类,记为真正类(True Positive TP/T+)
  • 一个实例是正类,但被预测为负类,记为假负类(False Negative FN/F-)
  • 一个实例是负类,但被预测为正类,记为假正类(False Positive FP/F+)
  • 一个实例是负类,但被预测为负类,记为真负类(True Negative TN/F-)
    TP和TN中的真表示分类正确,同理FN和FP表示分类错误的

为了全面的表达所有二分问题中的指标参数,下列矩阵叫做混淆矩阵 - Confusion Matrix,目的就是看懂它,搞清楚它,所有模型评价参数就很清晰了
技术图片

通过上面的的讨论已经有T+:TP F+:FP T-:TN F-:FN C+:样本正类 C-:样本负类 Pc+:预测正类 Pc-:预测负类

用样本中的正类和负类进行计算的定义
技术图片

用预测结果的正类和负类进行计算的定义
技术图片
其他定义概念
技术图片
技术图片
最终为了不那么麻烦,说人话,还是一图胜千言
技术图片
技术图片

图片详解:

左边暗一些部分的点都是真正的正类,右边亮一些部分的点都是真正的负类
中间的一个圆圈就是我们的正类分类器:注意,这个圈是的预测结果都是正类,也就是说在这个分类器看来,它选择的这些元素都是它所认为的正类,对应的,当然是圈以外的部分,也就是预测结果是负类的部分
底下的Precision和Recall示意图也相当的直观,看一下就能明白

2

ROC Curve

ROC - Receiver Operating Characteristic Curve,接受者操作特征曲线,ROC曲线

这个曲线乍看下为啥名称那么奇怪呢,原来这个曲线最早是由二战中的电子工程师和雷达工程师发明的,用来侦测战场上的敌军飞机,舰艇等,是一种信号检测理论,还被应用到心理学领域做知觉检测。

3

什么是ROC曲线

ROC曲线和混淆矩阵息息相关,上一部分已经详细解释了相关内容,这里直接说明ROC曲线的横坐标和纵坐标分别是什么

横坐标:FPR假正类率,纵坐标:TPR真正类率

初看之下你不懂一个曲线表示的什么意思,那么看几个特征点或特殊曲线是一个非常好的方法。按照这种方法来分析ROC曲线:

  • 第一个点:(0,1),FPR=0 TPR=1 ,这意味着所有的正类全部分类正确,或者说这是一个完美的分类器,将所有的样本都分类正确了
  • 第二个点:(1,0), FPR=1 TPR=0 ,和第一个点比较,这是第一个点的完全反面,意味着是个最糟糕的分类器,将所有的样本都分类错误了(但其实可以直接取反,就是最好的模型,因为是二分类问题)
  • 第三个点:(0,0),FPR=0 TPR=0 也就是原点,这个点表示的意思是,分类器预测所有的样本都为负类
  • 第四个点:(1,1),FPR=1 TPR=1,和第三个点对应,表示分类器预测所有的样本都为正类
  • 一条线:y=x。这条对角线上的点实际上就是一个采用随机猜测策略的分类器的结果

总结来说,ROC曲线的面积越大,模型的效果越好;ROC曲线光滑以为着Overfitting越少

还是一图胜千言
技术图片
技术图片

如果问这个分类器画成的图像为何是一个类似帽子的形状,例子是最佳的说明方法,我们就来算一个ROC曲线看看,下图是20个测试样本的结果,“Class”一栏表示每个测试样本真正的标签(p表示正类,n表示负类),“Score”表示每个测试样本属于正样本的概率,Inst#是序号数
技术图片

接下来,我们从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。举例来说,对于图中的第4个样本,其“Score”值为0.6,那么样本1,2,3,4都被认为是正样本,因为它们的“Score”值都大于等于0.6,而其他样本则都认为是负样本。每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。这样一来,我们一共得到了20组FPR和TPR的值(和你的测试样本的数量有关),将它们画在ROC曲线的结果如下图:
技术图片

在上图中,(a)和(c)为ROC曲线,(b)和(d)为Precision-Recall曲线。

(a)和(b)展示的是分类其在原始测试集(正负样本分布平衡)的结果,(c)和(d)是将测试集中负样本的数量增加到原来的10倍后,分类器的结果。可以明显的看出,ROC曲线基本保持原貌,而Precision-Recall曲线则变化较大,记住这个结论即可

4

PRC Curve

在上面提到了一个指标,PRC - Precision-Recall 曲线,画法和ROC很相似,但是使用值是Precision和Recall

5

AUC Value

AUC - Area Under Curve被定义为ROC曲线下的面积

AUC在[0.5,1]之间,这是因为ROC曲线一般都处于y=x这条直线的上方(否则这个做分类器的人连简单的取非都不会真可以去死了)

AUC值越大,证明这个模型越好

6

Bias-Variance Tradeoff

三个名词,Error误差 Bisa偏差 Variance方差

7

三个名词表示了什么

再来一次,一图胜千言
技术图片

  • 准:Bias 描述的是根据样本训练的模型的输出预测结果的期望与样本真实结果的差距,说人话,这个模型对样本拟合的好不好。想在Bias上表现好,降低Bias,就是复杂化模型,增加模型的参数,但这样容易过拟合(Overfitting)Low Bias对应的就是点都在靶心附近,所以瞄的都是准的,但手不一定稳
  • 确:Variance 描述的是根据样本训练的模型在测试集上的表现(泛化能力) ,想在Variance上表现好,降低Variance,需要简化模型,减少模型的参数,这样做容易欠拟合,对应上图的High Bias,点偏离的中心。Low Variance对应的是点打的都很集中,但不一定在靶心附近,手很稳,但是瞄的不准
    要准确表达这两个定义的含义必须要使用公式化的语言,不得不感叹,在准确描述世界运行的规律这件事上,数学比文字要准确并且无歧义的多,文字(例子)直观啰嗦,数学(公式)准确简介
    技术图片
    Bias-Variance Tradeoff作为机器学习一个核心训练的观点或者说概念,推导觉得还是十分重要,整理如下

8

推导过程

技术图片

9

总结

感觉在实际使用中,你不需要去自己写代码来画这些曲线,只要是框架是一定整合了这些值得结果,但是知其然知其所以然,越了解它是如何画的,越能处理奇怪的特殊情况

常见的处理方式是记下来所有指标的结果,即这些指标怎么变,表示了模型的那些方面好或者坏的结论,但是如果在特殊的问题出现了不在你看的结果中的情况可能还是会捉襟见肘,还是脚踏实地,能看见更大的世界!

推荐阅读:

精选干货|近半年干货目录汇总
【直观理解】一文搞懂RNN(循环神经网络)基础篇
【直观详解】什么是PCA、SVD

      欢迎关注公众号学习交流~         

技术图片

【直观详解】机器学习分类器性能指标详解

标签:平衡   有关   erro   var   面积   hold   工作   整合   元素   

原文地址:https://blog.51cto.com/15009309/2553972

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!