统计学习方法一:基础
对统计学习方法中的基础概念和理论做一个总结。逐步更新。
内容摘自《统计学习方法》第一章,第一章内容基本全是重要内容,因此此篇部落格算是一个加入了自己理解思路的读书笔记。
一、统计学习方法包含哪几种?
监督学习:用于学习的数据集都是输入\输出数据对(有标记的样本),学习的任务是找到输入与输出的对应规则。主要用于分类、标注、回归分析。
非监督学习:用于学习的数据集只有输入(未标记的样本),学习的任务是对于数据进行分析,找到输出。主要用于聚类。
半监督学习:是监督学习和非监督学习的结合,它主要考虑如何利用少量的标注样本和大量的未标注样本进行训练和分类的问题,主要用于半监督分类、半监督回归、半监督聚类、半监督降维。
强化学习:简单理解,学习者在学习过程中不断与环境交互,会从环境中得到一定的奖赏,根据奖赏再不断的学习,直到达到一个更优的策略。
二、统计学习三要素
(1)在监督学习中,模型就是所要学习的条件概率分布或决策函数
(2)假设空间:包含所有可能的条件概率分布或决策函数,可以定义为决策函数的集合或条件概率分布族
(3)参数空间:包含决策函数或条件概率分布模型中涉及的所有参数向量
2、策略
有了模型的假设空间,统计学习的目标在于从假设空间中选取最优模型,具体如何选择,就是策略需要考虑的问题。
1)损失函数和风险函数
(1)损失函数(loss function)或代价函数(cost function)——度量模型一次预测的好坏
对于给定的输入x,由模型f(X)给出相应的输出,但是预测的输出f(x)与真实值Y可能存在不一致,用一个损失函数或者代价函数来度量预测错误的程度。
损失函数L(Y,f(X))是预测值f(X)和真实值Y的非负实值函数。损失函数值越小,模型就越好
常见的损失函数:
a)0-1损失函数 L(Y,f(X)) = 1(Y<>f(X)) ; = 0(Y=f(X))
b)平方损失函数 L(Y,f(X)) = (Y-f(X))^2
c)绝对损失函数 L(Y,f(X)) = |Y-f(X)|
d)对数损失函数或对数似然损失函数 L(Y,f(X)) = -logP(Y|X)
(2)期望风险(期望损失)
理论上模型f(X)关于联合分布P(X,Y)的平均意义下的损失
(3)经验风险(经验损失)
模型f(X)关于训练数据集的平均损失
(4)说明:
期望风险和经验风险都是基于损失函数来求的
期望风险是模型关于联合分布的期望损失 —— 理论上的值
经验风险是模型关于训练样本集的平均损失 —— 根据实际训练集可求
根据大数定律,当样本容量N趋于无穷时,经验风险趋于期望风险,所以可以用经验风险估计期望风险
2)经验风险最小化与结构风险最小化
(1)经验风险最小化(ERM):ERM的策略认为经验风险最小的模型是最优的模型 —— 极大似然估计(某些条件下)
求经验风险函数的最小值
当样本容量足够大时,经验风险最小化能保证有很好的学习效果
当样本容量很小时,经验风险最小化学习的效果未必很好,甚至会产生“过拟合”问题
(2)结构风险最小化(SRM):为了防止过拟合而提出的策略 —— 等价于正则化
结构风险在经验风险上加上表示模型复杂度的正则化项或罚项
求(经验风险+模型复杂度)最小值
3)监督学习问题 ————> 经验风险或结构风险最优化问题
3、算法
前两个步骤,关注从假设空间中选择最优模型,这一步则考虑如何求解最优模型
如前,监督学习问题——>最优化问题,此步骤关注如何找到最优解
三、模型评估与模型选择
1、评估标准 —— 误差
训练误差:模型关于训练数据集的平均损失(经验风险)
测试误差:模型关于测试数据集的平均损失(经验风险)
2、过拟合
当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当模型复杂度过大时,过拟合现象就会发生。
学习时选择的模型所包含的参数过多(复杂度过高),以致于出现这一模型对已知数据预测得很好,但对未知数据预测得很差的现象
3、模型选择——正则化
正则化:正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项或罚项
正则化项:一般是模型复杂度的单调递增函数,模型越复杂,正则化值越大
正则化的作用是选择经验风险与模型复杂度同时较小的模型
4、模型选择 —— 交叉验证
如果给定的样本数据充足,进行模型选择的一种简单方法是随机地将数据集切成三部分,分别为训练集、验证集和测试集。训练集用来训练模型,验证集用于模型的选择,测试集用于最终对方法的评估
但是由于在许多实际应用中数据是不充分的,为了选择好的模型,可以采用交叉验证方法
(1)基本思想:重复的使用数据,把给定的数据进行切分,将切分的数据集组合为训练集和测试集,在此基础上反复地进行训练、测试以及模型选择
(2)简单交叉验证:将已给数据随机分为两部分,分别用作训练集和测试集
(3)S折交叉验证:首先将已给数据随机分为S组;然后利用S-1个子集的数据训练模型,剩余1个子集测试模型;将这一过程对可能的S种选择重复进行;最后选出S次评测中平均测试误差最小的模型。
(4)留一交叉验证:S折交叉验证的特殊形式是S=N,其中N是给定数据集的容量,称为~
四、泛化能力
指由该方法学习到的模型对未知数据的预测能力
1、泛化误差:
现实中,可以通过测试误差来评价学习方法的泛化能力(测试数据集的经验风险),但是由于测试数据集有限,所以从理论上进行分析:
用学习到的模型对未知数据预测的误差即为泛化误差(测试数据集的期望风险)
2、泛化误差上界
可以理解为泛化误差的可能最大值,等于经验风险+一个函数(参数是样本容量和假设空间容量)
(1)泛化误差上界是样本容量的单调递减函数,当样本容量增加时,泛化上界趋于0
(2)泛化误差上界也是假设空间容量的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大
五、生成方法和判别方法
监督学习方法可以分为生成方法和判别方法。所学到的模型分别称为生成模型和判别模型
1)生成方法
(1)由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:P(Y|X)=P(X,Y)/P(X)
之所以称为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系
(2)典型的生成模型:朴素贝叶斯发和隐马尔可夫模型
(3)优点:可以还原联合概率分布P(X,Y);学习收敛速度更快;存在隐变量时,仍可以用生成方法学习
2)判别方法
(1)由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型
判别方法关心的是对给定的输入X,应该预测什么样的输出Y
(2)典型的判别模型:K近邻、感知机、决策树、逻辑斯蒂回归模型、最大熵模型、支持向量机、提升方法、条件随机场等
(3)优点:准确率更高;简化学习问题
六、监督学习主要用于解决什么问题?
1、分类问题
1)步骤:分类问题包含学习和分类两个过程,主要用来进行分类。
(1)学习过程:根据已知的训练数据集,利用有效的学习方法学习一个分类器。
(2)分类过程:利用学习到的分类器对新的输入实例进行分类。
2)训练集输入输出类型
(1)输入:连续或者离散型变量
(2)输出:有限的离散性变量
3)评价标准?
正类:关注的类;负类:其他类
4)有哪些方法?
k近邻、感知机、朴素贝叶斯、决策树、决策列表、逻辑斯蒂回归、支持向量机、提升方法、贝叶斯网络、神经网络等
5)应用有哪些?
分类算法主要是用于分类,通常包括二分类和多分类两种,多分类就是分类的类别有多个。
应用很多:文本分类、客户类型分类等等,所有分类问题
2、回归问题
1)步骤:回归问题分为学习和预测两个过程,主要用来进行预测。
(1)学习过程:基于训练数据集学习一个模型,即函数Y=f(X)
(2)预测过程:对于新的输入x,根据学习模型,确定相应的输出y
回归问题的学习等价于函数拟合,选择一条函数曲线使其很好地拟合已知数据且很好地预测未知数据
2)训练集输入输出类型:
输入:连续型变量
输出:连续型变量(与分类不同)
3)有哪些种类
(1)按照输入变量的个数,可以分为一元回归和多元回归
(2)按照输入变量和输出变量之间的关系类型,可以分为线性回归(函数是一条直线)和非线性回归(函数是一条曲线)
3、标注问题
1)步骤:分为学习和标注两个过程,主要用来对观测序列给出标记序列
(1)学习过程:根据训练集,学习得到一个条件概率分布模型
(2)标注过程:对新的输入观测序列,根据学习得到的概率分布模型,找到相应的输出标记序列
2)训练集输入输出类型:
(1)输入类型:一个观测序列
(2)输出类型:一个标记序列或状态序列
3)评价指标:标注准确率、精确率、召回率
4)常用的统计学习方法:隐马尔可夫模型、条件随机场
5)应用:信息抽取、自然语言处理(词性标注)