欢迎访问喜蛋文章网
你的位置:首页 > 读后感 > 文章正文

模型评估有哪些方法

时间: 2023-06-21 19:01:13 | 来源: 喜蛋文章网 | 编辑: admin | 阅读: 84次

模型评估有哪些方法

模型检验常用方法有哪些?

正确性分析;有效性分析;有用性分析;高效性分析

数学建模中的评估模型有哪些

数学建模中的评估模型有:

1、层次分析法,构造两两比较判断矩阵,单一准则下元素相对权重计算及一致性检验,一致性检验,计算各层元素对目标层的总排序权重;

2、灰色关联分析体系;

3、DEA评价体系,比率模式,超级效率模式,线性规划模式,超级效率之多阶排序模型;

4、模糊数学评价模型。

数学建模就是根据实际问题来建立数学模型,对数学模型来进行求解,然后根据结果去解决实际问题。

当需要从定量的角度分析和研究一个实际问题时,人们就要在深入调查研究、了解对象信息、作出简化假设、分析内在规律等工作的基础上,用数学的符号和语言作表述来建立数学模型。
请问您所说的评估是指指标评价吗?如果是的话:
在数学建模中,其实大多数指标是要根据实际情况来定义的,所以没有通用的模型,在评价过程中,常常会用到多指标综合评价,这个方面比较常用的方法有:熵值法、神经网络、层次分析法、主成分分析法等等。但是无一例外都需要大样本的数据来作为运算的支撑,不然都不准。
注:模糊数学也是一个很常用的评价模型,适合于模糊评价。

分类模型的评估(一)

针对二元分类结果,常用的评估指标有如下三个:查准率(Precision)、查全率(Recall)以及F-score。这篇文章将讨论这些指标的含义、设计初衷以及局限性。

在机器学习领域,我们常常会碰到二元分类问题。这是因为在现实中,我们常常面对一些二元选择,比如在休息时,决定是否一把吃鸡游戏。不仅如此,很多事情的结果也是二元的,比如向妹子表白时,是否被发好人卡。

当然,在实际中还存在一些结果是多元的情况,比如从红、黄、蓝三种颜色中,选择一个,而这些多元情况对应着机器学习里的多元分类问题。对于多元分类问题,在实际的处理过程中常将它们转换为多个二元分类问题解决,比如图1所示的例子。

那么自然地,一个多元分类结果可以分解为多个二元分类结果来进行评估。这就是为什么我们只讨论二元分类结果的评估。为了更加严谨的表述,我们使用变量 来表示真实的结果, 表示预测的结果。其中 表示正面的结果(在实际应用中更加关心的类别),比如妹子接受表白,而 表示负面的结果,比如妹子拒绝表白。

在讨论查准查全的数学公式之前,我们先来探讨:针对二元分类问题,应该如何正确评估一份预测结果的效果。

沿用上面的数学记号。如图2所示,图中标记为1的方块表示 ,但 的数据;标记为3的凹型方块表示 ,但 的数据;标记为2的方块表示 ,且 的数据。而且这些图形的面积与对应数据的数据量成正比,比如, ,且 的数据个数越多,标记2的面积越大。

很容易发现,图中标记为2的部分表示模型预测结果正确,而标记为1和3的部分则表示模型预测结果错误。

于是,对应地定义查准率(precision)和查全率(recall)这两个技术指标(有的文献里,将查准率翻译为精确率;将查全率翻译为召回率)来评估一份预测结果的效果。比较直观的定义如图2所示。

为了更加严谨,下面将从数学的角度给出这两个指标的严格定义。首先将数据按预测值和真实值分为4类,具体见表1。

于是可以得到公式(1):

公式(1)经过进一步的推导,可以得到这两个技术指标的概率定义,如公式(2)。从概率上来讲:预测值等于1时,真实值等于1的概率为查准率;真实值等于1时,预测值等于1的概率为查全率。

理想的情况是这两个指标都很高,但现实往往是残酷的。这两个指标通常存在着此消彼长的现象。比如降低预测表白成功的标准(也就是增加 的数量),往往会提高它的查全率,但同时会降低它的查准率,反之依然。整个过程的直观图像如图3所示。

既然这两个指标往往是成反比的,而且在很大程度上,受预测标准的控制。那么只拿其中的某一个指标去评估预测结果是不太合适的。比如在极端情况下,预测所有表白都成功,即。这时预测的查全率是100%,但查准率肯定很低,而且这样的预测显然是没太大价值的。而两个指标同时使用,在实际应用时又不太方便。为了破解这个困局,在实践中,我们定义了新的指标去“综合”这两个指标。具体的定义如公式(3),从数学上来看,它其实是查准率与查全率的调和平均数。对于二元分类问题, 综合考虑了预测结果的查准率和查全率,是一个比较好的评估指标。

其实从模型的角度来看,查准率与查全率的“相互矛盾”给了我们更多的调整空间。应用场景不同,我们对查准率和查全率的要求是不一样的。在有的场景中,关注的焦点是查全率。例如对于网上购物的衣服推荐,电商平台关心的是那些对衣服感兴趣的客户,希望模型对这些客户的预测都正确;而那些对衣服不感兴趣的客户,即使模型结果有较大偏差,也是可以接受的。也就是说,电商平台重视查全率,但不太关心查准率。这时就可以调低模型的预测标准,通过牺牲查准率来保证查全率。但在有的场景中,查准率才是重点。例如在实时竞价(RTB)广告行业,有3种参与者:需要在互联网上对产品做广告的商家,比如Nike;广告投放中介(DSP);广告位提供者,比如新浪网。Nike将广告内容委托给广告投放中介A,A通过分析选定目标客户群。当目标客户访问新浪网时,A向新浪网购买广告位并将Nike广告推送给他。如果该客户点击了Nike广告,Nike会向投放中介A支付相应费用。否则,全部费用由中介A承担。那么对于广告投放中介A,它希望投放的每条广告都会被点击,但不太关心是否每个对Nike感兴趣的客户都被推送了广告。换句话说,广告投放中介更关心查准率。于是可以通过调高模型的预测标准来提高查准率,当然这时会牺牲一部分查全率。

对于这些偏重某一特定指标的场景,可以如公式(4),相应地定义指标(其实是的一个特例)。当靠近0时,偏向查准率,而很大时,则偏向查全率,如图4所示。

查准率、查全率和F-score是最为常用的二元分类结果评估指标。其中查准率和查全率这两个指标都只侧重于预测结果的某一个方面,并不能较全面地评价分类结果。而F-score则是更加“上层”的评估指标,它建立在前面两个指标的基础上,综合地考虑了分类结果的精确性和全面性。

从上面的讨论可以看到,这三个指标针对的是某一份给定的分类结果。但对于大多数分类模型,它们往往能产生很多份分类结果,比如对于逻辑回归,调整预测阈值可以得到不同的分类结果。也就是说,这三个指标并不能“很全面”地评估模型本身的效果,需要引入新的评估指标。这部分内容的讨论将在下一篇文章中展开( 《分类模型的评估(二)》 )。

这篇文章的大部分内容参考自我的新书 《精通数据科学:从线性回归到深度学习》 。

李国杰院士和韩家炜教授在读过此书后,亲自为其作序,欢迎大家购买。

另外,与之相关的免费视频课程请关注 这个链接

第二章 模型评估与选择

上一章,简略地介绍了机器学习,以及 数据集、数据集、测试集、假设空间、版本空间等等的相关概念 。这一章就开始讲模型评估与选择了,因为书上是以“学习器”来称呼模型的,所以下面我也用学习器来进行说明总结。

什么是经验误差?
在分类样本时会出现分类错误,我们把分类错误的样本数占样本总数的比例称为 “错误率” , 精度 即正确率,自然是1-错误率了。学习器的 实际预测输出 与样本 实际输出 之间的 差异 就称为 “误差” ,于 训练集 就是 “经验误差” ,于 新样本 就是 “泛化误差” 。

什么是过拟合?
我们希望学习器能在新样本的预测中有更好的效果,即泛化性能最大化。但 在学习过程中 ,往往会把训练集中的样本学得过多,使得泛化降低,就是说 学到了 训练样本个体的特点而不是总体样本的特点,或者说学了这个训练集的特殊点, 相对于所有潜在的样本来说的特点 。这就是 “过拟合” ,那么与过拟合相对的就是 “欠拟合” ,反而思之,便是学得不到位,样本的一般性质都掌握不了!

因为过拟合无法避免,所以我们想要去减少它的风险。 其实就是 对模型的泛化误差进行评估,然后选择泛化误差最小那个。
对多种学习算法、参数配置进行选择即模型选择:
一个学习算法→不同参数配置→不同模型

在实验测试中,只有数据集可用,为了对学习器的泛化误差进行评估,只能 从数据集(验证集)中分离出训练集与测试集 ,测试集用于测试学习器对新样本的判别能力, 将测试集上的“测试误差”作为泛化误差的近似 。故 测试集要尽可能与训练集互斥 。

直接将数据集划分两个互斥的集合,一个作训练集,一个作测试集。训练集、测试集的划分要尽可能保持数据分布一致性。即 保持训练集和测试集中样本类别比例相差不大,否则会产生偏差 。一般确定训练集与测试集的样本比例之后,对于数据集的样本划分的方法也有很多, 不同划分方法造成模型评估结果也不同,所以就要进行多次留出法,随机划分重复评估再取平均值作为评估结果 。对于留出法,其划分样本于训练集与测试集的比例要适当,若是训练集含有大多数样本,那么其模型结果便与数据集训练出来的模型接近,但是由于测试集样本过少,其评估结果就不那么准确,反之也是一样的道理。 故常常采取2/3~4/5的样本作为训练集,其余作为测试集。

将数据集划分为k个大小相似的互斥子集,即互不包含。 每个子集尽可能保持数据分布的一致性,即通过 分层采样 得到。 这k个子集又分出k-1个作为训练集,剩下一个作为测试集,可以分k次,进行k次训练和测试 ,最终也是求其 结果的均值 。同留出法, 交叉验证法要随机使用不同的划分重复多次 ,最终结果是多次k折交叉验证结果的均值。比如“10次10折交叉验证”就会有100次训练,有100个训练结果(模型)。
交叉验证法有一个特例,其名为 留一法 ,就是数据集 有多少个样本,就划分成多少个子集 ,即每个子集一个样本,于是随机划分只会产生一种结果, 所以这种方法被实际评估的模型与期望评估的用数据集训练出来的模型很相似。 其缺点是当数据集很大的时候,用它就需要庞大的计算量(还未考虑调参)。

上面两种方法是需要将数据集划分的,这样自然会让 用训练集训练出的模型 与 用数据集训练出来的模型 有一定的 估计偏差 。如此,自助法以自助采样法为基础,简单地讲就是重复随机抽样, 从数据集D中进行重复随机抽样m次,便会得到一个含有m个样本的数据集D 1 ,这就是自助采样的结果。
对于 样本在m次不被采集到 的概率:

这说明了,D中大概有36.8%的样本没有出现在D 1 中。于是我们可以 把D 1 作为训练集 ,把那约 36.8%的样本作为测试集 。其优点是对于 数据集较小、难以有效划分训练 时很有用,其缺点就是改变了初始数据集的划分,这可能会引入估计偏差。

什么是调参?
上面粗略地提到过参数的调整,我们 在进行模型的评估和选择时,不仅要对学习算法进行选择,还要对算法参数进行设定 ,这便是调参。
梳理一下:

参阅自: 机器学习为什么需要训练,训练出来的模型具体又是什么?
回到调参,对于每种参数都训练出模型是不现实的,我们应 对每个参数选定一个范围和步长 ,选出的参数即为 候选参数值(一般10个以内) ,最终从这些候选参数值中产生 选定值 。这是一种折中的结果,是为了使学习过程成为可能。
然鹅,尽管我们得到了这个模型,但这不是最终提交给用户的模型,我们 需要对数据集重新训练 ,使用全部样本以训练出的模型,才是最终模型。

习得模型在实际遇到的数据称为测试数据;模型评估与选择中用于评估测试的数据称为"验证集"。 例如:在研究对比不同算法的泛化性能时,用测试集上的判别效果来评估模型在实际使用中的泛化性能,而把训练数据分为训练集和验证集,基于验证集上的性能来进行模型选择和调参。

是衡量模型泛化能力的评价标准。 其反映了 任务需求 。对于给定的样例集D={(x 1 ,y 1 ),(x 2 ,y 2 ),...,(x m ,y m )},其中的y是x的真实标记,现在要评估学习器f的性能,于是把f的结果与y进行比较。
回归任务——性能度量——“均方误差” :

一般的,对于数据分布 和概率密度函数p(·),均方误差可以表示为:

下面主要介绍 分类任务中常用的性能度量 。

上面这两种就是分类任务中常用的性能度量啦!对于样例集D,分类错误率定义如下:

【注:Ⅱ(·)是指示函数。若·( 即对括号内进行逻辑判断 )为 真 则取值为 1 , 假 则取 0 】
精度定义:

一般的:

对于真实类别与学习器预测类别的异同,我们可以分为真正例、假反例、假正例、真反例,分别称为TP、FN、FP、TN(T=True,F=False,P=Positive,N=Negative)。这里的 真假是针对学习器预测结果 来说的。
于是查准率P与查全率R定义如下:

这 两个性能度量是矛盾的,呈负相关 。
我们常常根据学习器的预测结果对样例进行排序, 把“最可能”是正例的放在前面 。按这个顺序,逐个把样本作为正例进行预测,每次都可以计算出当前的查准率与查全率,然后以查准率为纵轴,查全率为横轴,作P-R图如西瓜书p 31 。
若一个学习器的P-R图完全包含了另一个,则说明前者性能更优于后者。
但往往会出现不完全包含, 出现交叉的情况 ,那么我们 一般用F1 来对比衡量。
在说F1度量之前,先说一下平衡点。
平衡点(BEF) 是综合考虑查准率与查全率的性能度量。是 “查准率 = 查全率” 时的取值。是一种简单的度量。
F1度量:

一般形式:

其中 >0 度量了查全率对查准率的 相对重要性 。 >1时,查全率有更大的影响, <1时,查准率有更大的影响。

上面提及到的性能度量的 平均值 (在各 混淆矩阵 (其实就是上面真假正反例的矩阵)上分别计算出查准率与查全率,再计算平均值)称为 “宏查准率”(macro—P)、“宏查全率”(macro—R)以及"宏F1"(macro—F1) ,前两个均值就是算术平均的计算方式,相加除以n,最后一个则是根据前两个计算得来,参考上面F1的定义。
上面是一种做法,也可以把混淆矩阵的真假正反例进行平均,则有 、 、 、 ,于是可求出 “微查准率”(micro—P)、“微查全率”、“微F1”。 然后你懂的,参考上面写的相关公式,代入即可。

ROC全称是“受试者工作特征曲线”,根据预测结果对样例进行排序,然后按顺序逐个把样本作为正例进行预测,以每次计算出的“真正例率”(TPR)作为纵轴,“假正例率”(FPR)作为横轴。两者定义如下:

ROC曲线下的面积即为AUC ,是用来比较当两个学习器的ROC曲线相交不完全包含,要进行性能比较时,则使用AUC。 AUC的估算 :

其与排序误差有紧密联系,于是给定 个反例, 个正例,令 和 分别表示反例、正例的集合。则 排序损失 定义为:

对应的是 ROC曲线之上的面积 ,由此有: .

为何引入代价?
因为.......你这样做是要付出代价的!即为所造成结果的超额处理。引入代价是为了 衡量不同类型错误所造成不同的损失 ,可为错误赋予 “非均等代价” .
代价矩阵 :

其中 表示将第i类样本预测为第j类样本的代价。 例如上矩阵中,损失程度相差越大, 与 值的差别越大,比较一般是以 代价比值 而非绝对值。(即倍数关系)

从前面提到的性能度量, 均是在假设均等代价前提下 进行计算的,如今引入了非均等代价,便要对其考虑在内。
于是将上面代价矩阵中的第0类作正例,第1类作反例,而 与 分别表示正例子集和反例子集,则以错误率为例子,“代价敏感”错误率为:

除此之外,若令 中的 不限取0和1,则可定义出多分类任务的代价敏感性能度量。
那么在非均等代价下,ROC曲线无法直接反映学习器的期望总代价,于是我们引入“代价曲线”,其横轴是取值为[0,1]的正例概率代价:

其中p是样例为正例的概率,纵轴是取值为[0,1]的 归一化 代价:

其中FNR=1-TRP。ROC曲线上的每一点对应代价平面上的一条线段,若ROC曲线上一点为(FPR,TPR)则对应一条从(0,FPR)到(1,FNR)的线段,于是 所有线段的下界围成的面积即为在所有条件下学习器的期望总体代价。

有了实验评估方法和性能度量之后,便是对学习器的泛化性能进行比较。此时为了对学习器进行适当的比较,统计假设检验为我们进行学习器性能比较提供了重要依据。该节默认以错误率为性能度量。

1. 二项检验

2. t检验

你应该知道的模型评估的五个方法

你应该知道的模型评估的五个方法好久没更新了,我怕再不更,我要掉粉了,这次来更新的是模型评估的常见的五个方法:1、混淆矩阵。2、提升图
你应该知道的模型评估的五个方法
好久没更新了,我怕再不更,我要掉粉了,这次来更新的是模型评估的常见的五个方法:
1、混淆矩阵。
2、提升图&洛伦兹图。
3、 基尼系数
4、ks曲线
5、roc曲线。
1
混淆矩阵

混淆矩阵不能作为评估模型的唯一标准,混淆矩阵是算模型其他指标的基础,后面会讲到,但是对混淆矩阵的理解是必要的。

模型跑出来的“Y”值为每个客户的预测违约概率,可以理解为客户的有多大的可能违约。把概率等分分段,y坐标为该区间的人数,可以得到这样子一个图表。

可以看到图中这条线,一切下去,在左边就算是违约的客户,那么右边就是正常的客户,本身模型没办法百分百的判断客户的状态,所以cd就算是会误判的,d本来是是左边这个小山的客户,那就是坏客户,但是模型预测他的概率比较高别划分到了好客户的这边了,所以d就是被预测为好客户的坏客户,同样的道理,c就是被预测为坏客户的好客户。
2
提升图&洛伦兹图

假设我们现在有个10000的样本,违约率是7%,我们算出这10000的样本每个客户的违约概率之后降序分为每份都是1000的记录,那么在左图中,第一份概率最高的1000个客户中有255个违约的。违约客户占了全部的36.4。如果不对客户评分,按照总体的算,这个分组;理论上有70个人是违约的。

把刚才的图,每组中的随机违约个数以及模型违约个数化成柱形图,可以看到假设现在是p值越大的客户,违约概率越大,那就是说这里第一组的1000个人就是概率倒序排序之后的前1000个人。那么可以看到通过模型,可以识别到第一组的客户违约概率是最高的,那么在业务上运用上可以特别注意这部分客户,可以给予拒绝的处理。

那么洛伦兹图就是将每一组的一个违约客户的个数累计之后连接成一条线,可以看到在12组的时候,违约人数的数量上升是一个比较明显的状态,但是越到后面的组,违约人数上升的越来越少了。那么在衡量一个模型的标准就是这个条曲线是越靠近y轴1的位置越好,那样子就代表着模型能预测的违约客户集中在靠前的几组,所以识别客户的效果就是更好。
3
基尼系数

洛伦茨曲线是把违约概率降序分成10等分,那么基尼统计量的上图是把违约概率升序分成10等分,基尼统计量的定义则为:

G的值在0到1之间,在随机选择下,G取0。G达到0.4以上即可接受。
4
ks值

ks曲线是将每一组的概率的好客户以及坏客户的累计占比连接起来的两条线,ks值是当有一个点,好客户减去坏客户的数量是最大的。那么ks的值的意义在于,我在那个违约概率的点切下去,创造的效益是最高的,就图中这张图来说就是我们大概在第三组的概率的中间的这个概率切下,我可以最大的让好客户进来,会让部分坏客户进来,但是也会有少量的坏客户进来,但是这已经是损失最少了,所以可以接受。那么在建模中是,模型的ks要求是达到0.3以上才是可以接受的。
5
roc

灵敏度可以看到的是判断正确的违约客户数,这里给他个名字为违约客户正确率(tpr),误判率就是判断错误的正常客户数(fpr)。特殊性就是正常客户的正确率,那么roc曲线是用误判率和违约客户数画的一条曲线。这里就需要明确一点就是,我们要的效果是,tpr的越高越好,fpr是越低越好。ROC曲线就是通过在0-1之间改变用于创建混淆矩阵的临界值,绘制分类准确的违约记录比例与分类错误的正常记录比例。具体我们来看图。

我们首先来看A,B点的含义,A点的TPR大概为0.7左右,FPR大概是0.3左右,那么就是说假设我错误的将30%坏客户判断是坏的,那么可以识别70%的客户肯定坏的。B点的TPR大概为0.3左右,FPR大概是0.7左右,那就是我错误的将70%好客户当做坏客户,只能得到30%的客户是确定 坏客户。所以这么说的话,点越靠近左上方,模型就是越好的,对于曲线也是一样的。
总结
我个人建议,要依据不同的业务目的,选取不同的评估方式, 基尼系数、提升图可以用于用人工审批情况的业务目的,不同的分组突出客户的质量的高低,ks、roc可以用于线上审批审核的情况,根据最小损失公式,计算出概率点。
文章标题: 模型评估有哪些方法
文章地址: http://www.xdqxjxc.cn/duhougan/173227.html
文章标签:模型  评估  方法  有哪些
Top