第一章 统计学习方法概论
统计学习的主要特点是:
(1)统计学习以计算机及网络为平台,是建立在计算机及网络之上的;(2)统计学习以数据为研究对象,是数据驱动的学科;(3)统计学习的目的是对数据进行预测与分析;(4)统计学习以方法为中心,统计学习方法构建模型并应用模型进行预测与分析;(5)统计学习是概率论、统计学、信息论、计算理论、最优化理论及计算机科学等多个领域的交叉学科,并且在发展中逐步形成独自的理论体系与方法论.
统计学习的对象是数据Cdata)
统计学习的目的是对数据进行预铡与分析,特别是对未知新数据进行预测与分析.
分类:
监督学习((supervised leaning)
无监督学习(unsupervised leaning)
半监督学习(semi-supervised leaning)
增强式学习(reinfoucement leaning)
统计学习方法的三要素:简称为模型(model),策略(strategy)和算法(algoxitinm).
实现统计学习方法的步骤如下
(1) 得到一个有限的训练数据集合;
(2) 确定包含所有可能的模型的假设空间,即学习模型的集合;
(3) 确定模型选择的准则,即学习的策略;
(4) 实现求解最优模型的算法,即学习的算法;
(5) 通过学习方法选择最优模型;
(6) 利用学习的最优模型对新数据进行预测或分析.
监督学习((supervised leaning)
输入实例x的特征向量记作

训练集:

输入变量与输出变量均为连续变量的预测问题称为回归问题;
输出变量为有限个离散变量的预测问题称为分类问题;
输入变量与输出变量均为变量序列的预侧问题称为标注问题.
监督学习假设输入与输出的随机变量X和Y遵循联合概率分布P (X,Y)。监督学习问题的模型如图:

学习系统利用给定的训练数据集,通过学习(或训练)得到一个模型,表示为条件概率分布P^(Y|X)或决策函数Y=f^(X).条件概率分布P^(Y|X)或决策函数Y=f^(X)描述输入与输出随机变量之间的映射关系.
统计学习三要素
方法 = 模型+策略+算法
模型:
在监督学习过程中,模型就是所要学习的条件概率分布或决策函数。模型的假设空间(hypothesis space)包含所有可能的条件概率分布或决策函数。
假设空间可以定义为决策函数或条件概率的集合,由参数向量决定的函数族:


策略
损失函数: 用一个损失函数(loss function)或代价函数(cost function)来度量预测错误的程度。损失函数是 f (X)和Y的非负实值函数,记作L(Y, f (X)) .常用损失函数:
(1) 0-1损失函数( 0-1 loss function )

(2)平方损失函数 (quadratic loss function)

(3)绝对损失函数 (absolute loss function)

(4)对数损失函数(logarithmic loss function)或对数似然损失函数 (loglikehood loss function)

损失函数的期望是

这是理论上模型f (X)关于联合分布P(X,Y)的平均意义下的损失,称为风险函数(risk function)或期望损失(expected loss)。学习的日标就是选择期望风险最小的模型。但不知道联合概率分布。
模型f(x)关于训练数据集的平均损失称为经验风险(empirical risk)或经验损失(empirical loss):

期望风险Rexp(f)是模型关于联合分布的期望损失,经验风险Remp(f)是模型关于训练样本集的平均损失。根据大数定律,当样本容量N趋于无穷时,经验风险趋于期望风险。所以一个很自然的想法是用经验风险估计期望风险。但是,由于现实中训练样本数目有限,甚至很小,所以用经验风险估计期望风险常常并不理想,要对经验风险进行一定的矫正.这就关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化.
经验风险最小化(empirical risk minimization, ERM),即求解最优化问题:

当样本容量足够大时,经验风险最小化能保证有很好的学习效果。例:极大似然估计(maximum likelihood estimation)。但是,当样本容量很小时,经验风险最小化学习的效果就未必很好,会产“过拟合(over-fitting)"现象.
结构风险最小化(structural risk minimization, SRM)是为了防止过拟合,在经验风险上加上表示模型复杂度的正则化项(regulatizer)或罚项(penalty term ),定义是:

其中J (f)为模型的复杂度,是定义在假设空间下上的泛函。结构风险小需要经验风险与模型复杂度同时小。例贝叶斯估计中的最大后验概率估计(maximum posterior probability,MAP )。
结构风险最小化策略为:

算法:学习模型的具体计算方法。统计学习问题归结为最优化问题,统计学习的算法成为求解最优化问
题的算法。
模型评估与模型选择
训练误差与测试误差
假设学习到的模型是Y=f^(X),训练误差是模型Y关于训练数据集的平均损失:

测试误差是模型Y关于测试数据集的平均损失:

例如,当损失函数是0-1损失时,测试误差就变成了常见的测试数据集上的误差率(eaor rate)

相应地,常见的测试数据集上的准确率(accuracy)为

过拟合与模型选择
过拟合(over-fitting):如果一味追求提高对训练数据的预侧能力,所选模型的复杂度则往往会比真模型更高。这种现象称为过拟合(over-fitting)。过拟合是指学习时选择的模型所包含的参数过多,以致于出现这一模型对己知数据预测得很好,但对未知数据预测得很差的现象。
例:多项式拟合问题:


在多项式函数拟合中可以看到,随着多项式次数(模型复杂度)的增加,训练误差会减小,直至趋向于0,但是测试误差却不如此,它会随着多项式次数(模型复杂度)的增加先减小而后增大。要防止过拟合,进行最优的模型选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。
模型选择方法:正则化与交叉验证
正则化是结构风险最小化策略的实现:

交叉验证:重复地使用数据,把给定的数据进行切分,将切分的数据集组合为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择.
- 简单交叉验证
首先随机地将己给数据分为两部分,一部分作为训练集,另一部分作为测试集;然后用训练集在各种条件下(例如,不同的参数个数)训练模型,从而得到不同的模型;在测试集上评价各个模型的测试误差,选出测试误差最小的模型. - S折交叉脸证(S-fold cross validation)
方法如下:首先随机地将已给数据切分为S个互不相交的大小相同的子集;然后利用S-1个子集的数据训练模型,利用余下的子集测试模型;将这一过程对可能的S种选择重复进行;最后选出S次评测中平均侧试误差最小的模型. - 留一文叉验证 (leave-one-out cross validation)
S折交叉验证的特殊情形是S=N,N是给定数据集的容量
泛化能力
学习方法的泛化能力(generalization ability)是指由该方法学习到的模型对未知数据的预测能力,是学习方法本质上重要的性质。
如果学到的模型是f^(X),那么用这个模型对未知数据预测的误差即为泛化误差( generalization error):

事实上,泛化误差就是所学习到的模型的期望风险.
泛化误差上界(generalizarion error bound)。具体来说,就是通过比较两种学习方法的泛化误差上界的大小来比较它们的优劣。泛化误差上界通常具有以下性质:它是样本容量的函数,当样本容量增加时,泛化上界趋于0;它是假设空间容量(capacity)的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大。
下面给出一个简单的泛化误差上界的例子, 二类分类问题的泛化误差上界,


f N的泛化能力:


生成模型与判别模型
监督学习方法又可以分为生成方法(generative approach)和判别方法(discriminative approach).所学到的模型分别称为生成模型(geuemtive model)和判别模型(discriminative model).
生成方法由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(YIX)作为预测的模型,即生成模型

这样的方法之所以称为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系.典型的生成模型有:朴素贝叶斯法和隐马尔可夫模型。
判别方法由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型.判别方法关心的是对给定的输入X,应该预测什么样的输出Y.典型的判别模型包括k近邻法、感知机、决策树、逻辑斯谛回归模型、最大嫡模型、支持向量机、提升方法和条件随机场等。
生成方法的特点:生成方法可以还原出联合概率分布P(X,Y),而判别方法则不能;
生成方法的学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快地收敛于真实模型;
当存在隐变量时,仍可以用生成方法学习,此时判别方法就不能用。
判别方法的特点:直接学习的是条件概率P(Y|X)或决策函数f(X),直接面对预测,往往学习的准确率更高;
由于直接学习P(Y|X)或f(X),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题.
分类问题(classification)
分类问题包括学习和分类两个过程

分类准确率((accuracy),其定义是:对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。也就是损失函数是0-1损失时测试数据集上的准确率。
TP——将正类预测为正类数
FN——将正类预测为负类数;
FP——将负类预测为正类数:
TN——将负类预测为负类数.
精确率定义为 

召回率定义为 

F1值,是精确率和召回率的调和均值, 

应用:文本分类,垃圾邮件;银行贷款信用等
标注问题( tagging )
标注问题是分类问题的一个推广,标注问题又是更复杂的结构预测( structure prediction)问题的简单形式。标
注问题的输入是一个观测序列,输出是一个标记序列或状态序列。标注问题的目标在于学习一个模型,使它能够对观侧序列给出标记序列作为预测。注意,可能的标记个数是有限的,但其组合所成的标记序列的个数是依序列长度呈指数级增长的。

学习系统基于训练数据集构建一个模型,表示为条件概率分布

评价标注模型的指标与评价分类模型的指标一样,标注常用的统计学习方法有隐马尔可夫模型、条件随机场。
应用:词性标注,信息抽取,等。例

回归问题(regression)
回归用于预测输入变量(自变量)和输出变量(因变量)之间的关系,特别是当输入变量的值发生变化时,输
出变量的值随之发生的变化。回归模型正是表示从输入变量到输出变量之间映射的函数。回归问题的学习等价于函数拟合:选择一条函数曲线使其很好地拟合已知数据且很好地预侧未知数据。

回归问题按照输入变量的个数,分为一元回归和多元回归;按照输入变量和输出变量之间关系的类型即模型的类型,分为线性回归和非线性回归。回归学习最常用的损失函数是平方损失函数,在此情况下,回归问题可以由著名的最小二乘法(least squares)求解。
应用:股价预测等
分类问题:输出变量为有限个离散变量,定性分析,例如预测 晴天、下雨等
回归问题:输入变量和输出变量均为连续变量,定量,例如预测出气温多少度,价格是多少
标注问题:输入变量与输出变量均为变量序列;如上文中词性分析的例子