机器学习之正则化与交叉验证

时间:2014.07.01

地点:基地

--------------------------------------------------------------------------------

零、简述

今天学习两种模型选择方法,一种是正则化方法,还一种是交叉验证。

--------------------------------------------------------------------------------

一、正则化(regularization)

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

正则化公式如下:

正则化公式前一项即是经验风险,后一项为正则化项,在这里大于或等于0 ,为调整经验风险项和正则化项之间关系的系数。

正则化项可以有多种不同形式,比如在回归问题中,损失函数为平方损失,正则化项是参数向量的L2范数:


这里的||w||表示的是参数向量w的L2范数

当然正化项也可以是参数向量的L1范数,这样,正则化公式为:


在这里||w||1为参数向量的L1范数。

这样一来,经验风险较小的模型可能比较复杂,含多个非零参数,于是第2项正则化项就会较大。正则化的目的就是为了选择经验风险与模型复杂度同时都比较小的模型。

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

--------------------------------------------------------------------------------

二、交叉验证(cross validation)

当给定样本数据充足,进行模型选择的方法一般为:

随机将数据集划分为三部分,分别为:训练集,验证集,测试集。我们用训练集数据来训练模型,用验证集数据来选择模型,用测试集数据最终对学习方法进行评估。一般来说,我们选择对验证集有最小预测误差的模型,由于验证集有足够多的数据,因此对模型进行选择也是有效的。但由于许多实际应用中,数据本身不充足,为了选择好的模型,我们需要用到交叉验证:即重复使用数据,把给定数据进行切分,将切分数据集组合为训练集与测试集,在此基础上反复进行训练,测试已经模型选择。

2.1简单交叉验证

1.随机将数据分为两个部分:训练集(70%)+测试集(30%)

2.然后用训练集在各种条件下(比如不同参数个数)训练模型,从而得到不同模型

3.在测试集上评价各个模型的测试误差,选出测试误差最小的模型。

2.2 S折 交叉验证

S折交叉验证(S-fold cross validation)应用最多,它的步骤为
首先:随机将已知数据切分为S个互不相交的大小相同的子集

然后:利用S-1个子集的数据训练模型,利用剩下的一个子集测试模型,将这一过程对可能的S种可能(即划分后,把每个子集都当一次测试集其余训练集)重复进行

最后选择出S次评测中平均测试误差最小的模型

2.3 留一 交叉验证

S折交叉验证的特殊情形就是S=N,,称为留一交叉验证(leave-one-out cross validation),在数据比较缺乏的情况下使用,N恰好为给定数据集的容量)

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...