[机器学习]机器学习笔记07—模型的评估与选择

一 名词解释

训练误差:模型在训练集上的误差.
泛化误差:新样本在学模型上的误差
泛化能力: 指机器学习算法对新样本的适应能力

二 模型选择与评估方法

通常为了选择适当的模型,我们需要对该模型进行评估,可以使用实验测试对模型的泛化误差进行比较,因此,需要测试集。用测试误差来近似泛化误差。
测试集:也是从样本真实分布中独立同步采样得来的,应该尽可能与训练集互斥,不在训练集中出现,未在训练过程中使用。
例如:对于一个包含m个样例的数据集D={(x1,y1),(x2,y2),…(xm,ym)}需要产生训练集S与测试集T

具体方法

1、留出法

直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T,即有
D=S∪T,S∩T=∅

注意点
1.训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响。通常使用分层采样。
2. 单次使用留出法的估计结果往往不可靠,使用留出法一般要若干次随机划分,重复进行实验评估后取平均值作为留出法的评估结果。

2、交叉验证法

通过分层采样的方式从中将数据集划分为k个大小相似的互斥子集。选k-1个子集的并集作为训练集,余下作为测试集。
D=D1∪D2∪…∪Dk,Di∩Dj=∅
每个子集Di都尽可能保持数据分布的一致性,即从D中通过分层采样得到。然后,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集,这样就可以获得k组训练/测试集。从而可以进行k次训练与测试,最终返回的是这k个测试结果的均值。
很显然,交叉验证法评估结果的稳定性和保真性在很大程度上取决于k的取值,通常把交叉验证法称为”k折交叉验证(k-fold cross validation)”,k最常用的取值为10。如下图:
这里写图片描述
与留出法类似,为了减少因样本划分不同而引入的差别,k折交叉验证通常要随机使用不同的划分冲p次,最终的评估结果是这p次k折交叉验证结果的均值。

3、自助法

数据集D中包含m个样本,从中随机随机挑选一个样本,拷贝到D* 中,然后放回,重复这个过程m次,则D中有一部分样本会在D*
多次出现,有的样本不会出现,未出现的概率为
这里写图片描述
所以可以将D*作为训练集,而(D-D* )作为测试集(D包含D*没有的样本),检验测试结果。
该方法适用于数据集较小的样本。在数据足够时,常使用留出法和交叉验证法。

4、调参

对算法参数进行设定,参数调节。调参需要注意,常用的做法是对每个参数选定一个范围与变化步长,在计算开销与性能估计之间折中。

5.最终模型

对于m个样本的数据集D,训练出模型并选择完成后,学习算法与参数配置都已选定,还需要用数据集D重新训练,这个模型才是我们的最终模型。

三 性能度量

性能度量: 对学习器的泛化性能进行评估,不仅需要有效可行的实验评估方法,还需要有模型泛化能力的评价标准。这就是性能度量。 均方误差:
回归任务中最常用的性能度量方法:
这里写图片描述
更一般的,对于数据分布D和概率密度函数p(⋅),均方误差为:
这里写图片描述

错误率与精度

错误率就是分类错误的样本占样本总数的比例;精度就是分类正确的样本占样本总数的比例, 对于样例D,分类错误率定义为:
这里写代码片
其中Ⅱ(⋅)指示函数表示真取1,假取0. 精度则定义为:
这里写图片描述
更一般地对于数据分布D和概率密度函数p(⋅),错误率与精度分别描述为
这里写图片描述

查全率、查准率与F1

对于分类问题我们可以将样例与预测类别的组合划分为真正例(TP)、假正例(FP)、真反例(TN)、假反例(FN),显然有TP+FP+TN+FN=样例总数,混淆矩阵如下:
这里写图片描述
查准率P与查全率R:
P=TP/(TP+FP),R=TP/(TP+FN)
很多情况下,我们用学习器的预测结果对样例进行排序,排在前面的学习器认为是最可能的正例的样本,排在最后的则是学习器认为最不可能正例的样本。按此逐个把样本作为正例进行预测,则每次可以计算出当前的查全率、查准率。以查准率为纵轴、查全率为横轴作图,就得到了查准率-查全率曲线,简称P-R曲线。如下:
这里写图片描述
- 一般的若一个学习器的P-R曲线A包住了另一个学习器的曲线C,那么认为A学习器较优;
- 若A曲线与B曲线有交叉点,那么很难断言二者的优劣性,模糊情况下可以用面积来比较;
- 基于平衡点(break-event point)的比较,它是查全率与查准率相等的点,平衡点较高的较优。

F1度量

F1度量更为实用
这里写代码片

F1度量的一般形式-Fβ
这里写代码片
其中β>0度量了查全率对查准率的相对重要性。β=1退化成F1;β>1时查全率更大影响,相反查准率更大影响。

ROC与AUC

ROC曲线是“受试者工作特征”曲线,是用来衡量学习器泛化能力性能的有力工具,
这里写图片描述
ROC,受试者工作特征(receiver operating characteristic),ROC曲线的纵轴为”真正例率”-TPR,横轴为”假正例率”(FPR),两者分别定义为
这里写代码片
进行学习器的比较时,若一个学习器的ROC曲线被另一个学习器的曲线包住时,可以断言后者的性能优于前者;同理若交叉,则比较面积,即AUC(Area Under ROC Curve)
这里写图片描述

参考

frankstars.基于《机器学习》学习整理- chapter 2

猜你喜欢

转载自blog.csdn.net/baihuaxiu123/article/details/80387788