购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4 模型的评价方法

区别于统计学习,评价一个机器模型是否有效,必须将数据集分为训练集与测试集。如图2.3所示,评价模型的第一步应先在训练集中计算相应的评价指标。如果在训练集中模型的表现已不尽如人意,那么此时就应该选择其他模型。例如在2.1节中,应该立刻抛弃线性回归模型。如果模型在训练集中的表现尚可采纳,那么第二步就应该考虑模型在测试集中的拟合优度。

图2.3 单个模型的评价流程

如果一开始有多个备选模型,并且这几个模型均通过了训练集拟合优度评价(第一步),那么此时应该将测试集拆分为验证集和测试集,并在验证集中选择效果最优的模型进行测试集验证;如果模型在测试集中的效果不理想,则应选择验证集中的次优再次进行测试,具体过程如图2.4所示。除此之外,还可以通过交叉验证的方法筛选模型,详细内容将在第5章和第15章介绍。

图2.4 多个模型的评价与选取流程

2.4.1 评价拟合优度的常见指标

从图2.4中看,模型的拟合结果只能定性评价模型的好坏,并且很多情况下也画不出具体的图形。此时必须结合某些指标,根据模型的预测值与样本的实际值量化地评价模型的拟合优度。本节将介绍评价模型的拟合优度指标。

1.评价回归拟合优度的指标

评价回归模型的常见指标有SSE、MSE、RMSE、 R 方与调整 R 方,其值可由式(2.6)~式(2.10)算出,具体内容详见2.1.3节。

2.评价分类拟合优度指标

所谓分类问题,即输出为离散型变量的问题。如果目标类别有且仅有两类 y ={0,1},则称该问题为二分类问题,输出变量 y 属于二值变量。同时,称用于二分类问题的模型为二分类模型,如2.5.3节中提到的KNN模型。如果目标类别不止两类,则称问题为多分类问题,模型为多分类模型。

评价一个多分类模型,可以将其拆分成多个二分类模型进行评价,下面介绍二分类模型的评价指标。

假设有一个二分类问题,样本容量为 m ,其中被模型正确分类的个体共有 T 个,被误分类的个体有 F 个, m = T + F 。定义二分类模型的评价指标如下。

精确度(Accuracy):主要用于评价模型的总体错误率。其计算公式为:

有时候也采用Jaccard相似系数来度量模型的总体精确度。定义集合 A , B },则Jaccard相似系数如下。

Jaccard相似系数:也称为Jaccard指数,用于衡量两个集合的相似性和多样性,其

计算公式为:

其中,| A B |为集合 A , B 的交集的个体数,| A B |为并集的个体数。

在二分类问题中,如果将正确分类记为True、错误记为False。将模型的预测结果划分为阳性(positive)和阴性(negative),那么分类结果可以划分为如下4种:

TP(真阳性):预测结果为阳性,观测值(实际值)亦为阳性;

TN(真阴性):预测结果为阴性,观测值亦为阴性;

FP(假阳性):预测结果为阳性但观测值为阴性,称为一类错误;

FN(假阴性):预测结果为阴性但观测值为阳性,称为二类错误。

通常将上述4个分类结果用如图2.5所示的模糊矩阵来表示。

图2.5 二分类任务模糊矩阵构成

模糊矩阵(Confusion Matrix):用于直观地展示TP、TN、FP和FN。

在某些分类问题中,人们要求分类器尽量不犯某一类错误。例如在癌症预测中,如果分类器将患者预测为阳性(罹患癌症),但实际上患者并没有罹患癌症(FP),则会对患者造成很大的精神打击。

同样,在防盗系统中,在识别攻击行为时,要求尽量不能犯二类错误(FN)。本应该被识别为攻击的行为却没有被识别出来,可能会带来很大的经济损失。在这种情况下,犯一类错误的代价便没那么高了。

因此,仅评价模型的总体错误率是不够的,有时应该考虑分类器避免犯两类错误的能力。常见的评价这两种能力的指标如下。

准确率(Precision):描述分类器避免第一类错误的能力。其计算公式如下:

从式(2.23)中可以看出,准确率越高,则模型犯一类错误的可能性就越低。

召回率(Recall):是度量模型避免第二类错误的能力。其计算公式如下:

为了综合考虑模型犯一类错误和二类错误的能力,学者们提出了F-Beta值。

F-Beta值:综合评价模型犯第一类错误与第二类错误的指标,其计算公式如下:

β =1时,记为 F 1 ,均衡考虑准确率与召回率。

β <1时,侧重考虑召回率。召回率对 F beta 的影响更大。

β >1时,侧重考虑准确率。准确率对 F beta 的影响更大。

对于评价多分类模型,可以将其视为评价多个二分类模型。如图2.6所示,假设类别的取值为 y ={1,2,3,4,5,6},样本 D 的容量为 m 。将样本按类别 D 拆分成六个子数据集 D 1~6 ,同时统计出每个子数据集中正确分类和错误分类的个体数为 T 1~6 , F 1~6 。于是,可以根据式(2.21)至式(2.25)计算出模型在子数据集 D 1~6 中的子指标,包括精确度、Jaccard系数、F-Beta值等。之后,可以对得出的子指标取平均,从而得出多分类模型的拟合优度。当然,也可以将这些子指标构成一个报表来展示多分类模型在各个类别中的表现。

图2.6 将多分类问题划分成多个二分类问题

以精确度为例,用图2.6所示的方法推导多分类问题的精确度计算。设样本容量为 m ,因变量 y 的取值为 y ={1,2,…, N }。按照上述方法,将样本拆分为子数据集 D 1~ N ,从而算出精确度:

上式亦可以表示为:

其中,函数 的取值为1且 。在后文中将频繁使用精确度来度量多分类模型的拟合优度。

例:假设有容量为1000的二分类样本,其中有500个个体为阳性、500个个体为阴性。现在有一个分类器,依照样本的特征对样本进行分类,其中有30个本来为阳性的个体被识别成阴性(FN)、70本来是阴性的个体被识别成阳性(FP),其余均识别正确,试计算模型在样本中的拟合优度。

首先计算模型的准确率,根据式(2.21)计算精确度为:

依题意,FN=30、FP=70、TP=470、TN=430,画出模糊矩阵如下:

计算准确率为:

计算召回率为:

计算 F 1 的值为:

假设模型更注重第二类错误,则设 β =0.75,此时的 F 值为:

假设模型更注重第一类错误,则设 β =1.25,此时的 F 值为:

2.4.2 欠拟合与过拟合

所谓欠拟合,是指模型在训练集和测试集中的表现均不尽如人意,如2.1节中的线性回归模型就属于欠拟合,它一般是由于模型与数据不契合引起的。而过拟合则相反,其是由于回归曲线在训练集中的拟合效果“太好”,导致泛化能力过差,从而无法应对陌生数据。欠拟合、恰拟合、过拟合在训练集中的直观表现如图2.7所示。

图2.7 3种拟合在训练集中的直观表现

过拟合与模型的种类有关,非参数模型如决策树和神经网络等很容易造成过拟合。另外,过拟合也与数据集有关,数据量太少而模型十分复杂也会导致过拟合现象;在样本容量少,特征较多的情况下也很容易导致过拟合。

可能有读者认为过拟合是一件好事,从图2.7中看难免有这种错觉,请读者认真观察图2.8。

图2.8 正常拟合与过拟合

在知道 x 的取值后,观测值 y 是一个随机变量,对应的存在一个概率密度函数 p ( y | x ),而回归模型就是要找到这个概率密度的均值 E ( y | x )。但在图2.8中可以看到,对于一些训练集中的异常数据,过拟合能够“完美”地拟合出来,但是恰拟合却能够巧合地“避开”。这就好像过拟合太过执拗,以致于它只局限于当前的训练集。它虽然能不偏不倚地“串”中所有的训练个体,但是忘记了原来寻找均值的任务。因此,当过拟合模型被用在陌生数据中时,往往显得“手足无措”。正常拟合则不同,它努力地落在两个训练个体之间,努力地去拟合均值。于是对于一个陌生数据点,正常拟合能够“以不变应万变”,而过拟合就不知道该怎么“串”中数据了。

过拟合表现在分类问题上时,其直观感受如图2.9所示。

图2.9 过拟合与正常拟合在分类问题上的直观表现

很多时候,人们并不能画出直观的表示图,从而观察模型过拟合、欠拟合与否。此时,可以结合模型在训练集和测试集中的拟合优度来判断模型是否恰拟合。以回归问题为例,假设一个模型在训练集中的 R 方为0.99,但是在测试集中却仅有0.75,那么这时候模型很有可能过拟合。

假设模型在训练集中的 R 方为0.7,在测试集中为0.65,此时有理由认为模型欠拟合。如果模型在训练集中的 R 方为0.92,测试集中为0.88,那么这时候可以认为模型恰拟合。

如果模型选择得当,那么模型的恰拟合与否往往取决于模型的训练程度,特别是对神经网络而言。基于这一点,可以根据模型在训练集和测试集上的拟合优度,从而在适当的时机停止模型的训练,以保证模型的恰拟合。以 R 方为例,模型效果与训练程度所呈现出来的趋势大体如图2.10所示。

图2.10 用评价指标衡量过拟合与欠拟合

理想的训练程度应为图2.10中的虚线所示,往左则有欠拟合的倾向,往右则倾向于过拟合。一般可以在模型测试集效果开始下降时提前终止模型训练。

同时要注意的是,由于模型的正则化(如神经网络的Dropout正则化,详细内容将在第14章介绍),一些模型可能要经历多个峰谷。因此一般理想的训练程度很难界定,需要建模者本身对当前问题、选择的模型有一定的工程经验。

2.4.3 防止过拟合的办法

当模型出现欠拟合时,应该重新选取其他模型或增大数据量。但是过拟合的出现往往存在许多影响因素,如模型过于复杂、数据量不够、数据划分不合理等。如果模型出现过拟合,一般应采取如下措施:

从数据预处理下手,如过滤一些多余的特征,对数据进行降维等。

提前终止训练过程,在训练过程中画出类似图2.10所示的曲线,当发现模型具有过拟合倾向时及时停止(该方法一般用在神经网络模型中)。

降低模型的复杂度,如将一元二次方程改为一元一次方程。

对模型进行正则化,详细内容将会在第14章介绍。

将容易过拟合的模型进行Bagging集成,亦可以在一定程度上缓解过拟合。有关Bagging集成的内容将在第13章介绍。 7wZIKOTxYlcG+POwEypS87YgmR91QC3NoMrZGf/JBuAZHocEeWuOyUJTr3pfqksK

点击中间区域
呼出菜单
上一章
目录
下一章
×