当我们得到数据模型后,该如何评价模型的优劣呢?之前看到过这样一句话 :“尽管这些模型都是错误的,但是有的模型是有用的”,想想这句话也是挺有道理的!评价和比较分类模型时,关注的是其泛化能力,因此不能仅关注模型在某个验证集上的表现。事实上,如果有足够多的样本作为验证集来测试模型的表现是再好不过的,但即使是这样也存在一个难点,比如难界定多大的样本才能足够表现出模型的泛化能力。因此,一般的做法是借助统计学的方法,评估模型在某个验证集分类表现的显著性。

评价及比较分类模型的过程,涉及到三个问题,一个是如何获取验证集,另一个是用什么度量指标表示分类表现,最后一个则是如何评估分类表现的显著性。

1.  验证集获取

数据样本的数量总是有限的,这就导致在选择训练集和验证集时出现了诸多方法,常用的方法有留出法、交叉验证法、bootstrap方法,下面分别介绍。

1.1 留出法

留出法一般用在样本数据量较大的情况。在使用留出法时,将样本数据分为两部分,一部分为训练集,另一部分为验证集,训练集用来生成模型,验证集用来评估其测试误差,将其作为对泛化误差的估计,这个思路比较简单,但是数据集的划分过程需要注意两点:的划分比例中样本的抽样方式

的划分比例偏大时,由于中数据样本量及包含的样本信息较少(糟糕的情况是其中还包含了较多噪声,这或许直接导致非常离谱的评估结果),因此其评估结果可能不够准确。即使中包含了比较准确的样本信息,在换一个同等数量新的验证集时,可能包含的信息就不那么准确,评估结果也可能会有较大差别,故其评估结果不稳定;的划分比例偏小时,由于训练数据包含较少的样本信息,这样得到的模型本身就不可取,这种情况比“的划分比例偏大”更糟糕,之后用得到的评估结果,已经是失真的了。那该如何选取训练集与验证集的划分比例呢?一般选用样本数据集的2/3~4/5用来训练模型,剩余数据用来测试,验证集应至少包含30个样本。

选择合适的划分比例后,还有(在个样本中选取个)的问题,因为此时样本选择仍有多种情况,单次使用留出法得到的评估结果往往不够可靠,一般采用多次随机划分、取评估结果的平均值的方式得到最终的评估结果。

1.2 交叉验证法

       交叉验证法中,将样本数据集均分为等份(注意,这个均分过程仍然要考虑1.1节中提到的信息均匀问题),前 份作为训练集,剩余一份作为测试集,得到测试结果。由于测试集的选择方式有种,因此在数据集的一次划分过程中可以得到个测试结果,将这个测试结果的平均值返回作为最终结果,这个过程通常称为“折交叉验证”。当=10时,交叉验证的过程示意图如下

在交叉验证过程中,在确定样本数据集划分份数时需要考虑1.1节中提到的训练集与测试集比例问题,除此之外,从数据集中抽样得到每份数据时同样存在问题,因此一般也会进行多次随机抽样(抽样次数为),这样在使用交叉验证法时一共会进行  次测试,最终的评估结果是这折交叉验证的结果的平均。

分析交叉验证法和留出法的过程来看,本质上是一样的。折交叉验证的过程可以视作次留出法的过程,不过要求在这次留出时,留出的数据间不能有重和,并且次留出的数据并起来就是样本数据集

1.3 bootstrap方法

       留出法和交叉验证法都在数据样本中单独划分出了验证集,这样在模型训练时并没有使用全部的样本数据,这在样本数据量充足时并不会产生多大问题,但是在样本数据量较小时可能会导致模型包含信息不充分,产生估计偏差,在这种情况下,bootstrap方法可能是一个比较好的选择。

在实施bootstrap方法时,为了得到训练集(包含个样本),每次从样本数据集中随机抽样一个样本放入训练集中,然后将该抽取的样本放回中重新进行抽样,重复该过程次后就得到训练集,然后将数据集中除去训练集后剩下的数据作为验证集,得到测试结果。重复进行多次这样的过程,将所有结果的平均值作为最终结果。

很明显,在bootstrap方法中抽样得到训练集的过程十分关键,抽样过程改变了训练集及验证集的分布,这很有可能带来估计偏差,因此在样本数据量充足时,还是选取前两种方法比较合适。

以上三种获取训练集、验证集的方法,都涉及到样本抽样的问题,抽样过程中也是有许多问题需要注意的,这里我不再多说明,可以参考我转载的博文《统计学中抽样调查和一些常用的方法》中的方法进行抽样。

2.  度量指标选择

在不同的任务中,应该选择合适的性能指标来衡量模型的优劣。在预测任务中,给定样本集 是  的真实标记,评估模型  的性能就是要比较  的预测结果与真实标记之间的差异。

2.1  错误率与精度

错误率及精度是分类任务中最常用的性能指标,适合于二分类及多分类任务,其定义也比较简单,错误率指错误分类的样本数占总样本数的比例,精度则为1-

2.2  查准率、查全率

在一些场合下,错误率及精度不足以衡量模型的性能,我们还关心查准率和查全率。比如在建立疾病预测模型时,需要依据人的体温、呼吸等条件预测其是否患有某种疾病,那么我们可能更关心这个模型的查准率,将真正患有疾病的人都预测出来,而不是简单的知道精度是多少,因为这存在健康被诊为患病、患病诊为健康的情况。对于二分类问题,先简单定义一下查准率与查全率

查准率:在所有被标为“正例”的样本中,真正为“正例”的样本比例

查全率:在所有真正为“正例”的样本,被标记为“正例”的样本比例

建立分类结果的混淆矩阵

查准率与查全率的计算公式为

然而查准率和查全率是一对矛盾的度量,对于很多模型来说二者很难同时达到完美,在对比模型的时候会出现一方查准率高而另一方查全率高的情况,此时该如何抉择呢?在实际应用中一般使用度量指标,它是基于查准率与查全率计算出来的,其定义如下

                          (1)

为样例总数

在一些分类任务中,对查准率与查全率的侧重会有所不同。在商品推荐领域中,会侧重查准率以减少不准确信息对用户的干扰,而在逃犯信息检索领域,会侧重查全率一些,避免有漏网之鱼,为此有了的改进形式——,其定义形式为

                              (2)

                             (3)

从公式(2)容易看出,当时,查全率R的变换对的影响较大,此时更侧重查全率;当时,查全率R的变换对的影响较小,查准率影响相对较大,此时更侧重查准率;当时,也就没有权重,变成了的形式。正如第1节中提到的,实际测试过程一般会有多次,此时可以计算多次测试的查准率、查全率结果,然后取其平均值代入公式(1)和公式(3)中计算。

在多分类任务中,假设分类数为,那么我们得到一个的混淆矩阵,表示第类样本被预测为第类的数量,多分类的混淆矩阵如下所示

类的查准率

第i类查全率

那么对于整个模型来说,其查准率与查全率该如何定义呢?我还没有查到相关比较权威的定义,先提一点个人的想法,如果对每一类的分类查准率与查全率没有权重的话,可以各类的查准率与查全率相加,然后计算平均值,再代入公式(1)和公式(3)中计算;如果有权重的话,则将各类的查准率与查全率加以相应权重,然后计算平均值,再代入公式(1)和公式(3)中计算,注意这种情况下会有两次加权,一次是对不同类的加权,一次是对查准率与查全率的加权。

3. 模型评价

       现在考虑这样一个问题,假设一个分类模型在大小为30的验证集上分类准确率为85%,能否说这个模型的分类正确率就是85%?再来一个大小为100的验证集,是否一定有约85个左右的样本能被正确分类呢?应该说不是这样的,对于这种情况,我们需要计算该模型分类准确率的置信区间,这是评估该模型的比较准确的做法。

一个样本的分类过程可以视为一次概率为  的伯努利过程,其中  为模型真实的分类正确率,那么一个样本集的分类则可以看作概率为的二项分布实验,期望为,方差为。设是在一次测试过程中、样本中被正确分类的个数,表示本次的分类正确率,则依据中心极限定理可知,当样本数量足够大时,则以下统计量

服从标准正态分布,在选定置信度  后,可以计算 的置信区间为

将其转化为等式、利用一元二次多项式根的公式

求解,得到p的置信区间为

例如,现有一个分类模型在100个样本上有80%的正确率,则其在95%的置信水平下,真实准确率的置信区间为多少?首先查阅标准正态分布概率表,95%的置信度对应的为1.96,将代入到上式中,计算得到置信区间为

4. 模型比较 

       现在考虑这样一个问题,分类模型1在100个样本上的正确率为85%,分类模型2在5000个样本上的正确率为75%,那么模型1的真实分类准确率一定比模型2高吗?我们还是从模型分类正确率的显著性上出发来比较二者。

依据中心极限定理可知,但样本数量足够大时,模型1和模型2上样本分类正确率的分布是两个相互独立的正态分布,模型1上分类正确率,模型上2分类正确率,为了比较模型1与模型2的分类正确率的差异,现在建立二者正确率观测差统计量

依据中心极限定理,统计量也服从正态分布,其均值

方差可以估计为

这样可以计算在置信度下的置信区间

一旦计算出的置信区间你跨过了零值,表示在选定的置信度下,观测的正确率差值可能为负,也即是我们不能认为模型1比模型2的真实分类正确率更高。

在实际应用中,更常见的可能是这样一种比较情况:在一个样本集上采用  交叉验证法去比较两个模型的分类效果。对与模型1和模型2,我们还是构建一个和上面一样计算,那么在  次交叉实验中,我们可以观测到  个  值,此时可以构建一个双样本的  统计量

其中表示在  次交叉实验中观测到的  的平均值,表示  的标准差,表示的平均值,表示的平均值。在  足够大时,可以用  的标准差除以  来估计的,也即是

在置信度为时,可以算得的置信区间为

同样的,若计算得到的置信区间跨过零值,则表明不能认为模型1比模型2更优。

         

分类模型的评价及比较相关推荐

  1. 机器学习---回归模型和分类模型的评价指标体系

    回归模型评价体系 SSE(误差平方和): R-square(决定系数) Adjusted R-square: 分类模型评价体系 一 ROC曲线和AUC值 二 KS曲线 三 GINI系数 四 Lift ...

  2. 【Kay】机器学习——二分类模型的评价

    一.评价二分类模型的好坏 二分类问题:预测这条数据是0还是1的问题 1.混淆矩阵 数字代表个数 2.准确率.精确率.召回率 ①准确率: ②精确率(查准率): ③召回率(查全率recall) :   ④ ...

  3. 分类模型-评估指标(2):ROC曲线、 AUC值(ROC曲线下的面积)【只能用于二分类模型的评价】【不受类别数量不平衡的影响;不受阈值取值的影响】【AUC的计算方式:统计所有正负样本对中的正序对】

    评价二值分类器的指标很多,比如precision.recall.F1 score.P-R曲线等.但这些指标或多或少只能反映模型在某一方面的性能.相比而言,ROC曲线则有很多优点,经常作为评估二值分类器 ...

  4. python决策评价模型_Python 构建并评价分类模型_Python Classify - 树懒学堂

    构建并评价分类模型 分类是指构造一个分类模型,输入样本的特征值,输出对应的类别,将每个样本映射到预先定义好的类别.分类模型建立在已有类标记的数据集上,属于有监督学习.在实际应用场景中,分类算法被用于行 ...

  5. sklearn分类模型

    分类学习 输入:一组有标签的训练数据(也称观察和评估),标签表明了这些数 据(观察)的所署类别. 输出:分类模型根据这些训练数据,训练自己的模型参数,学习出一个 适合这组数据的分类器,当有新数据(非训 ...

  6. 多分类f1分数_机器学习之分类模型评估总结

    一.概述 在机器学习模型搭建好之后,需要对模型进行评估,针对不同的算法模型有不同的评估方法,比如:分类算法.回归算法.聚类算法等,本文主要是针对分类算法的模型评估方法进行总结整理,便于自己对评估方法的 ...

  7. 机器学习分类模型评价指标详述

    问题建模 机器学习解决问题的通用流程:问题建模--特征工程--模型选择--模型融合 其中问题建模主要包括:设定评估指标,选择样本,交叉验证 解决一个机器学习问题都是从问题建模开始,首先需要收集问题的资 ...

  8. python 中任务 6.3 构建并评分分类模型(SVM模型) 学习笔记3

    文章目录 任务6.3 构建并评价分类模型 6.3.1 使用sklearn 估计器构建分类模型 代码6-17 使用sklearn估计器构建SVM模型 sklearn 库常用分类算法函数 代码 6-18 ...

  9. 二分类最优阈值确定_分类模型评价标准,AUC还是Macro F1?

    在人工智能领域,分类任务占据了很大的比例,例如物体识别(计算机视觉).信用卡欺诈(数值型预测).情感分析(自然语言处理)等等.针对众多的分类需求,模型的评价标准只是简单的准确率(Accuracy)吗? ...

最新文章

  1. IBM Tivoli Netview在企业网络管理中的实践(附视频)
  2. tf.squared_difference
  3. 【Go】语法基础之结构体
  4. Linux同步自己的配置,Linux学习心得之——Rsync同步配置
  5. 分支机构L2L *** 到总部再PAT通过专线到合作伙伴(SVTI建立***)
  6. Redis 过期键删除策略、内存淘汰机制
  7. oracle数据库主键自增序列_oracle数据库ID自增长--序列
  8. Python深度剖析贪吃蛇游戏的设计与实现
  9. 如何优雅的编写Objective-C语言?
  10. android入门级智能手表产地,从全球智能手表市场来看,Android智能手表只在中国卖得好...
  11. linux下删除服务
  12. SVD奇异值分解简述
  13. 软件各生命周期所用的工具
  14. 深度学习-胶囊网络学习
  15. 计算机应用技术专业课程视频,微视频技术在计算机专业课程教学中的应用研究...
  16. Could not connect to wpa_supplicant: p2p-dev-wlan0 - re-trying
  17. 苹果4s什么时候上市的_前景***好苹果苗什么时候价格
  18. 计算机网络基础之域名系统
  19. dw html压缩文件,如何压缩css文件?
  20. mysql 出现2003- cant connect to MYSQL server on localhost 的解决办法

热门文章

  1. 程序员诗词之————蝶恋花-五月四日见老同学徐惠
  2. 面试官经常问我三次握手和四次挥手,现在终于知道怎么简简单单的叙述出来了
  3. 基于支持虚拟安全架构策略的SDN / NFV的5G接入网络
  4. java面试题:第一行输出*#*#,第二行输出#*#*,以此类推
  5. 上海电子陶瓷展|2023上海国际电子陶瓷及压电晶体展览会【官网】
  6. C++日记——Day5:迭代器、begin()/end(),rbegin()/rend()、迭代器失效、const_iterator
  7. web浏览器与网站服务器,web服务器和web浏览器
  8. HCIP路由重发布技术以及路由策略及配置---RIP与OSPF双向重发布
  9. iOS遍历打印所有子视图
  10. 计算机出现远程错误怎么解决办法,win7系统远程桌面出现错误0x204的处理方法