统计学习之:正则化与交叉验证

本文介绍了机器学习中两种常见的模型选择方法:正则化和交叉验证。正则化通过在损失函数上增加一个惩罚项来限制模型复杂度,防止过拟合。交叉验证则通过数据集的划分和多次训练测试来评估模型的泛化能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明:
1.本文章为参考相关书籍和前辈经验所写,只为个人学习专用。
2.若有内容错误之处请大家留言改进。
3.若有引用不当之处,请告知本人,会进行相关处理。

1. 正则化

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

minfϵΓ1Ni=1NL(yi,f(xi))+ΛJ(f)

其中,第一项是经验风险,第二项是正则化项,Λ0为调整两者之间关系的系数。正则化项可以取不同的形式。例如。回归问题中,损失函数是平方损失,正则化项可以是参数向量的L2范数:

L(w)=1Ni=1N(f(xi,w)y)2+Λ2w2

这里,w表示参数向量w的L2范数。
正则化项也可以是参数向量的L1范数:
L(w)=1Ni=1N(f(xi,w)y)2+Λ2w1

这里,w1表示参数向量wL1范数。
第一项的经验风险较小的模型可能较复杂(有多个非零参数),这时第二项的模型复杂度会较大。正则化的作用是选择经验风险与模型复杂度同时较小的模型。

在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。从贝叶斯估计的角度来看,正则化项对应于模型的先验概率。可以假设复杂的模型有较小的先验概率,简单的模型有较大的先验概率。

2. 交叉验证

另一种常用的模型选择方法是交叉验证(cross validation)
如果给定的样本数据充足,进行模型选择的一种简单方法是随机的降数据集分成:训练集(training set)、验证集(validation set)、测试集(test set)。训练集用来训练模型,验证集用来选择模型,测试集用于最终对学习方法的评估。在学习到的不同复杂度的模型中,选择对验证集有最小预测误差的模型。由于验证集有足够多的数据,用它对模型进行选择也是有效的。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值