统计学习方法 第一章
- 经验风险最小化:
模型在训练集上的损失最小的一种策略,当数据集合较大时,会使模型在训练集上表现良好,但是容易造成过拟合,即在测试集合上表现欠佳。 结构风险最小化:
结构风险最小化是防止过拟合的一种策略,是在结构风险最小化的基础上加上表示模型复杂度的正则化项或者惩罚项。所谓表示模型复杂度的正则化项,模型复杂度是一个函数,具体可以是模型参数向量的范数或者其它形式,然后再乘以一个非负的系数。以这两项的和作为要最小化的模板函数。结构风险最小化认为,模型越复杂越容易过拟合,所以要控制模型复杂度,在最小化结构风险的同时,模型复杂度也随之减小。模型选择方法
不同的参数对应着不同的模型,它们的表现能力也不同,如何选择复杂度适当而且泛化误差最小的模型呢?下面介绍两种模型选择的策略。
① 正则化
正则化是上面提到的结构风险最小化策略的实现。正则化的作用就是选择经验风险(模型在训练集上的损失)与模型复杂度同时较小的模型。
②交叉验证
在样本数据充足的条件下,一种简单的选择模型的方法是随机将样本数据切分成三部分:训练集、验证集、测试集。训练集占比较大。训练集用来训练模型,验证集用于模型的选择,在不同复杂度的模型中,选择验证集上误差最小的一个集合。而测试集专门用来对最终选择的模型进行实际评估。
上述情况是比较理想的情况,实际应用的情况是数据往往是不充足的。这时候验证集可能数据量极少,再用上述的策略就不行了(极容易受少数噪音的影响)。这时候可以采用交叉验证的方法,所谓交叉验证基本思想就是重复地使用数据。具体来说有一下三种方法。
a 简单交叉验证:
随机地将数据分成两部分:训练集和测试集,如70%训练,30%测试。然后用训练集在不同条件下(调参)训练模型,从而得到若干个不同的模型。然后再测试集上评价各个模型的误差,选出测试误差较小的模型。
b: S折交叉验证,也有叫K折交叉验证:
这种方法是实际应用最多的,上面是随机将数据切分成两部分,这个方法是随机地将数据切分成S个互不相交的大小相同的子集。然后选择S-1个子集作为训练集训练模型,把剩下的一个子集作为测试集。将这个过程重复进行S次(S个子集,每个子集都可以作为一次测试集),这样每个模型可以得到S个不同的测试误差,将这S个误差的平均误差作为该模型的误差。以此来评估各个模型的测试误差。
c 留一交叉验证
留一交叉验证是上面S折交叉验证的特殊形式,往往在数据及其缺乏的情况下使用。就是把样本集中的每一个样本作为一个子集,这样就会有N个(N为样本容量)子集。可见留一交叉验证是S交叉的特殊形式。S交叉中的每个子集会有多个样本,而留一交叉的每个子集只有一个样本。生成模型与判别模型
监督学习任务的方法可以分为生成方法和判别方法,对应的模型分别叫做生成模型和判别模型。
生成模型是由数据的联合概率分布,然后求出条件概率分布P(Y|X)作为最终预测的模型即生成模型,这样的方法称为生成方法,之所以叫生成方法,是因为已知数据的联合概率分布,只要输入训练样本X就可以产生输出Y(P(Y|X) )。这样的生成模型有:朴素贝叶斯和隐马尔可夫模型。
判别模型是由数据X直接学习到一个决策函数F(x)或者条件概率分布P(Y|X),作为预测模型。典型的判别模型有:K近邻法、感知机、决策树、逻辑斯蒂回归、最大熵模型、支持向量机等,可见大部分机器学习的模型都属于判别模型。
生成方法的特点:收敛速度更快,即在样本容量增加的时候,学到的模型可以更快的收敛于真实模型。
判别方法的特点:直接面对预测,往往学习的准确率更高。- 分类、标注、回归问题
分类问题就很容易理解,给定一个样本判断它的类别,如垃圾邮件分类等。
标注问题可以是分类问题的一个推广,分类是给定一个样本的类别,标注问题的输入不再是单个样本而是一段序列,输出的也是一个标记序列。标注问题在信息抽取、自然语言处理等领域广泛应用。如自然语言处理的词性标注,给定一段英文文本,要求对每个单词进行词性标注。
回归问题的输入是连续性的。回归问题的学习等价于函数拟合问题即选择一条合适的函数曲线使其能很好的拟合已知数据并很好的预测未知数据。如股票价格预测等。