第一章 统计学习方法概论
统计学习的主要特点是
统计学习的对象
数据开始--->提取数据特征--->发现数据中的知识--->对数据进行分析和预测
统计学习方法的分类
统计学方法的三个要素
统计学方法的步骤
统计学习的研究
- 统计学习方法的研究——发现新的学习方法
- 统计学习理论的研究——提高统计学习方法的有效性和效率
- 统计学习应用的研究——-将统计学习方法应用到实际问题中去,解决实际问题。
监督学习/supervised leaning
监督学习也可以叫做有指导的学习,(在老师的指导和监督下学习,你会学的更好)所以,一般情况下,监督学习模型要优于无监督学习模型。当然会以需要训练集来作为代价,也就是说监督学习比无监督学习需要更多的资源(毕竟需要指导)。
假设输入实例X的特征向量记作
训练集:
假设输入变量用X表示,输出变量用Y表示,并假设输入与输出的随机变量X和Y满足联合概率分布P(X,Y),监督学习问题的模型如下所示:
这个模型还是比较容易理解的,简单的可以理解为:将训练集输入到我们的学习系统—->根据决策方法学习一个最优的模型—–>利用这个最优的模型对新来的数据进行预测。
三要素
模型
模型就是所要学习的条件概率或者决策函数。
(决策函数模型)
(条件概率模型)
策略
损失函数和风险函数
损失函数(loss function)或代价函数(cost function)是用来度量模型的预测能力的。损失函数是 f (X)(预测值)和Y(真实值)之间的非负实值函数(因为两者之间的差值可以理解为两者之间的距离,是非负的),记作L(Y, f (X)) 。
常用损失函数:
当然还存在其他的损失函数。比如:指数损失函数或者Hinge Loss等。损失函数值越小,代表模型越好,模型出现的误差越小。
经验损失或者经验风险
由于模型的输入、输出(X,Y)是随机变量,遵循联合分布P(X,Y), 所以损失函数的期望是:
这是理论上模型f (X)关于联合分布P(X,Y)的平均意义下的损失,称为风险函数(risk function)或期望损失(expected loss)。学习的日标就是选择期望风险最小的模型。由于,一方面根据期望风险最小化模型要用到联合概率分布,另一方面联合分布又是未知的,所以监督学习就成为一个病态问题!
在此我们提出另外一个概念:经验风险。(根据我自己的理解,带有“经验”的东东,一般是平均意义下东东,毕竟经验是需要积累的嘛。)
模型f(x)关于训练数据集的平均损失称为经验风险(empirical risk)或经验损失(empirical loss):
期望损失,经验风险Remp(f)是模型关于训练样本集的平均损失。根据大数定律,当样本容量N趋于无穷时,经验风险趋于期望风险。所以一个很自然的想法是用经验风险估计期望风险。但是,由于现实中训练样本数目有限,甚至很小,所以用经验风险估计期望风险常常并不理想,要对经验风险进行一定的矫正.这就关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化.
经验风险最小化(empirical risk minimization, ERM),即求解最优化问题:
当样本容量足够大时,经验风险最小化能保证有很好的学习效果(比如一个人的经验积累越多,判别力肯定会越好)但是当样本容量很小的时候,经验风险最小化的学习效果未必很好(毕竟走过的路有点小,以为世界就那么大,所以很容易做出错误的判断),可能会产生“过拟合(over-fitting)”现象。因此这时需要结构风险最小化。结构风险最小化(structural risk minimization, SRM)是为了防止过拟合,在经验风险上加上表示模型复杂度的正则化项(regulatizer)或罚项(penalty term ),定义是:
其中J (f)为模型的复杂度(有的时候可以理解为模型所需要的参数个数。)
结构风险小需要经验风险与模型复杂度同时小。
算法
学习模型的具体计算方法。统计学习问题归结为最优化问题,统计学习的算法成为求解最优化问
题的算法。如何找到全局最优解并使得求解的过程非常高效!
训练误差与测试误差
一般情况下,我们将数据集分为两大类:训练集和测试集。(有的时候分成三部分:训练集、验证集、测试集)。
训练误差是指模型在训练集上的误差,反映的是模型的学习能力。
(关于训练数据集的平均损失)
测试误差是指模型在测试集上误差,反映的是模型的预测能力。
(关于测试数据集的平均损失)
过拟合
过拟合(over-fitting):如果一味追求提高对训练数据的预侧能力,所选模型的复杂度则往往会比真模型更高。这种现象称为过拟合(over-fitting)。过拟合是指学习时选择的模型对己知数据(训练数据集中的数据)预测得很好,但对未知数据(测试数据集中的数据)预测得很差的现象。
例如:
上面的例子是,根据数据分布拟合多项式模型,M代表模型的多项式次数,我们可以看到M=0和M=1的时候,模型的学习和预测能力都不好,而M=9的时候,模型的学习能力很好(几乎都学会了,也就是说拟合出的多项式模型,可以通过每个训练数据样本点),但是它的预测能力很差!并且模型太复杂!而当M=3的时候,模型的学习能力和预测能力都是比较好的。(从图图像上直观的看到是,预测出的曲线模型和真实的曲线模型之间拟合度)。
训练误差和测试误差与模型复杂度之间的关系
模型的选择方法:正则化和交叉验证
正则化我们学过了,就是结构风险最小化策略的实现:
上式中的第二项就是我们的正则项(或者罚项)。
交叉验证:重复地使用数据,把给定的数据进行切分,将切分的数据集组合为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择.
生成模型和判别模型
成方法由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(YIX)作为预测的模型,即生成模型。
这样的方法之所以称为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系.典型的生成模型有:朴素贝叶斯法和隐马尔可夫模型。
判别方法由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型.判别方法关心的是对给定的输入X,应该预测什么样的输出Y.典型的判别模型包括k近邻法、感知机、决策树、逻辑斯谛回归模型、最大嫡模型、支持向量机、提升方法和条件随机场等。
给定输入X,生成模型不能直接预测出输出的y,需要计算之后,再比较(或者求出的是各种输出可能性的概率值,最大作为最终的求解结果),而判别模型可以直接给出预测结果y,(利用判断规则或者方法)
生成方法的特点:
判别方法的特点:
几种模型评估标准
精确率 P(Positive)=TP/(TP+FP)=d/(d+b)
召回率R(Positive)=TP/(TP+FN)=d/(d+c)
F1(精确率和召回率的调和均值)
F1(Positive)=(2*P*R)/(P+R)
同理可以求得P(Negative)、R(Negative)、F1(Negative)
这三种度量一般用于检测模型对每一类别的检测或预测能力。
对模型整体评估如有准确率AC(accuracy)
AC=(a+d)/(a+b+c+d)(对角线元素,正类和负类都预测正确的样本数)/(样本总数)
还有ROC曲线等。