模型评估与模型选择

1.4.1 训练误差与测试误差

统计学习的目的是使学到的模型不仅对已知数据而且对未知数据都能有很好的预测能力, 不同的学习方法会给出不同的模型,当损失函数给定时, 基于损失函数的模型的训练误差(training error)和模型的测试误差(test error)就自然成为学习方法评估的标准。

注意,统计学习方法具体采用的损失函数未必是评估时使用的损失函数,当然,让两者一致是比较理想的。

假设学习到的模型是 :
在这里插入图片描述
训练误差是模型关于 训练数据集 的平均损失:
在这里插入图片描述
其中N 是训练样本容量。

测试误差是模型关于 测试数据集 的平均损失:
在这里插入图片描述
其中 N’ 是测试样本容量。

例如, 当损失函数是 0-1 损失时, 测试误差就变成了常见的测试数据集上的误差率(error rate)。在这里插入图片描述

这里的 I 是指示函数(indicator function),即 y ≠ ^f (x) 时为 1, 否则为 0 。
相应的, 常见的测试数据集上的准确率 (accuracy)为
在这里插入图片描述
训练误差的大小,对判断给定的问题是不是一个容易学习的问题是有意义的,但本质上不重要,测试误差反映了学习方法对未知的测试数据集的预测能力,是学习中的重要概念, 显然,给定两种学习方法, 测试误差小的方法具有更好的预测能力, 是更有效的方法,通常将学习方法对未知数据的预测能力称为泛化能力(generalization ability)。

1.4.2 过拟合与模型选择

当假设空间有不同复杂度(例如,不同参数的个数)的模型时,就要面临模型选择(model selection)的问题,我们希望选择或学习一个合适的模型, 如果在假设空间存在“真”模型,那么所选择的模型应该逼近真模型,具体地,所选择的模型要与真模型的参数个数相同,所选择的模型的参数向量与真模型参数向量相近。

如果一味提高对训练数据的预测能力, 所选模型的复杂度则往往会比真模型更高,这种现象称为过拟合(over-fitting),过拟合是指学习时选择的模型所包含的参数过多,以至于出现这一模型对已知数据预测的很好,但对未知数据预测的很差的现象, 可以说模型选择旨在避免过拟合并提高模型的预测能力。

如何防止过拟合? 进行最优的模型选择,即选择复杂度适合的模型,以达到使测试误差最小的学习目的。

1.5.1 正则化

模型选择的典型方法是正则化(regularization),正则化是结构风险最小化策略的实现, 是在经验风险上加一个正则化项(regularizer)或罚项(penalty term),正则化项一般是模型复杂度的单调递增函数, 模型越复杂,正则化值就越大,比如,正则化项可以是模型参数向量的范数。

正则化一般具有如下形式:
在这里插入图片描述
其中,第一项是经验风险, 第2项是正则化项, λ >= 0 为调整两者之间关系的系数。

正则化可以取不同的形式,例如,回归问题中,损失函数是平方损失,正则化项可以是参数向量的 L2 范数。
在这里插入图片描述
这里 || w || 表示参数向量 w 的 L2 范数:

正则化项也可以是参数向量的 L1 范数:
在这里插入图片描述
这里, || w || 1 表示参数向量 w 的 L1 范数。

第 1 项的经验风险较小的模型可能比较复杂(有多个非零参数),这时第 2 项的模型复杂度会比较大, 正则化的作用是选择经验风险与模型复杂度同时较小的模型。

正则化符合奥卡姆剃刀原理, 奥卡姆剃刀原理应用于模型选择时变为以下想法:在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是最好的模型,也就是应该选择 的模型, 从贝叶斯估计的角度来看,正则化项对应于模型的先验概率, 可以假设复杂的模型有较大的先验概率,简单的模型有较小的先验概率。

1.5.2 交叉验证

另一种常用的模型选择方法是交叉验证(cross validation)。

如果给定的样本数据重组,进行模型选择的一种简单方法是将数据集切分成三部分,分别是训练集、验证集和测试集。训练集用来训练模型, 验证集用于模型的选择,而测试集用于最终对学习方法的评估,在学习的不同复杂度的模型中,选择对验证集有最小预测误差的模型,由于验证集有足够多的数据,用它对模型进行选择也是有效的。

但是,在许多实际应用中数据是不充足的,为了选择好的模型,可以采用交叉验证方法,交叉验证的基本想法是重复的使用数据; 把给定的数据进行切分,将切分的数据集分组合为训练集与测试集, 在此基础上反复地进行训练,测试以及模型选择。

  1. 简单交叉验证
    简单交叉验证方法是:首先随机地将已给数据分为两部分,一部分作为训练集, 另一部分作为测试集,然后用训练集在各种条件下训练模型,从而得到不同的模型,在测试集上评价各个模型的测试误差,选出测试误差最小的模型。
  2. S 折交叉验证
    应用最多的是 S折交叉验证,方法如下,首先随机地将已给数据切分为 S个互不相交的大小相同的子集,然后利用 S -1 个子集的数据训练模型, 利用余下的子集测试模型, 将这一过程对可能的 S 种选择重复进行,最后选出 S 次评测中平均测试误差最小的模型。
  3. 留一交叉验证
    S折交叉验证的特殊情形是 S = N ,称为留一交叉验证(leave-one-out cross validation),往往在数据缺乏的情况下使用,这里,N 是给定数据集的容量。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值