根据李航老师所著《统计学习方法》为线,结合其他书籍和网上资料,开始对机器学习进行系统整理。
2018.12.30:今日开始对写过的内容进行修改和细化补充,主要参考周志华教授的《机器学习》,辅以各大网友的不吝赐教。
统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测和分析的一门学科。
1、特点:(1)以计算机和网络为平台;(2)以数据为研究对象,是数据驱动的学科;(3)目的是对数据进行分析和预测;(4)以方法为中心,构建模型并应用模型进行分析和预测;(5)是概率论、统计学、信息论、优化理论和计算机科学等多个领域的交叉学科。
2、对象:数据。
3、目的:考虑学习什么的模型和如何学习模型,以使模型能够对数据进行准确的预测和分析,同时也要考虑学习效率。
4、方法:分为监督学习(supervised learning)、非监督学习(unsupervised learning)、半监督学习(semi-supervised learning)和强化学习(reinforcement learning)等。
5、实现步骤:(1)得到一个有限的训练数据集;(2)确定假设空间(即所有可能的模型);(3)确定选择模型的准则(即策略);(4)实现求解最优化模型的算法(即算法);(5)选择最优模型;(6)利用最优模型对新来的数据进行预测和分析。
6、研究:包括统计学习方法(算法创新)、统计学习理论(算法效率及有效性)及统计学习应用(解决问题)三个方面。
7、重要性:体现在三个方面:(1)统计学习是处理海量数据的有效方法。(2)统计学习是计算机智能化的有效手段。(3)统计学习是计算机发展的重要组成部分。
监督学习
1、三个基本概念:
(1)输入空间、特征空间、输出空间
(2)联合概率分布
(3)假设空间
2、问题的形式化
统计学习三要素(模型、策略、算法)
1、模型
在监督学习过程中,模型是要学习的条件概率分布或决策函数。
模型的假设空间包含所有可能的条件概率分布或决策函数。
由 决策函数/条件概率 表示的模型分别称为 非概率/概率模型。
决策函数模型: 条件概率模型 :
2、策略
按照什么样的准则学习和选择最优的模型。
(1)损失函数和风险函数
用一个损失函数(loss function)或代价函数(cost function)来度量预测错误的程度。损失函数是 f (X)和Y的非负实值函数,记作L(Y, f (X)) 。
常用的损失函数有如下几种:
A. 0-1损失函数(0-1 loss function):
B. 平方损失函数 (quadratic loss function):
C. 绝对损失函数 (absolute loss function):
D. 对数损失函数(logarithmic loss function)或对数似然损失函数 (loglikehood loss function):
损失函数的期望是:
期望风险Rexp(f)是模型关于联合分布的期望损失,经验风险Remp(f)是模型关于训练样本集的平均损失。根据大数定律,当样本容量N趋于无穷时,经验风险趋于期望风险。所以一个很自然的想法是用经验风险估计期望风险。
但是,由于现实中训练样本数目有限,甚至很小,所以用经验风险估计期望风险常常并不理想,要对经验风险进行一定的矫正.这就关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化。
(2)经验风险最小化与结构风险最小化
经验风险最小化(empirical risk minimization, ERM)的策略认为,经验风险最小的模型是最优的模型,即求解最优问题:
当样本容量足够大时,经验风险最小化能保证有很好的学习效果。例:极大似然估计(maximum likelihood estimation),当模型是概率分布且损失函数是对数损失函数时,经验风险最小化等价于极大似然估计。
但是,当样本容量很小时,经验风险最小化学习的效果就未必很好,会产“过拟合(over-fitting)"现象。
结构风险最小化(structural risk minimization, SRM)是为了防止过拟合而提出的策略。结构风险最小化等价于正则化。
结构风险在经验风险上加上表示模型复杂度的正则化项(regulatizer)或罚项(penalty term ),定义是:
其中J (f)为模型的复杂度,是定义在假设空间下上的泛函。结构风险小需要经验风险与模型复杂度同时小。例:贝叶斯估计中的最大后验概率估计(maximum posterior probability,MAP),当模型是概率分布且损失函数是对数损失函数时,结构风险最小化等价于最大后验概率估计。
3、算法
测试误差是模型Y关于测试数据集的平均损失:
例如,当损失函数是0-1损失时,测试误差就变成了常见的测试数据集上的误差率(eaor rate):
相应地,常见的测试数据集上的准确率(accuracy)为:
2、过拟合和模型选择
如果一味追求提高对训练数据的预测能力,所选模型的复杂度则往往会比真模型更高。这种现象称为过拟合(over-fitting)。过拟合是指学习时选择的模型所包含的参数过多,以致于出现这一模型对己知数据预测得很好,但对未知数据预测得很差的现象。
例:多项式拟合问题:
在多项式函数拟合中可以看到,随着多项式次数(模型复杂度)的增加,训练误差会减小,直至趋向于0,但是测试误差却不如此,它会随着多项式次数(模型复杂度)的增加先减小而后增大。要防止过拟合,进行最优的模型选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。
模型选择方法:正则化与交叉验证
1、正则化
正则化是结构风险最小化策略的实现:
第一项的经验风险较小的模型可能较复杂,因此正则化的作用是选择经验风险和模型复杂度同时较小的模型。
正则化的形式有很多,如常见的L1、L2正则化。
2、交叉验证(模型评估方法)
重复地使用数据,把给定的数据进行切分,将切分的数据集组合为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择。
常见的有如下三种方法:
(1)简单交叉验证(留出法)
做法:首先随机地将己给数据分为两部分,一部分作为训练集,另一部分作为测试集;然后用训练集在各种条件下(例如,不同的参数个数)训练模型,从而得到不同的模型;在测试集上评价各个模型的测试误差,选出测试误差最小的模型.
注意事项:一、训练/测试集的划分要尽可能保持数据分布的一致性。
二、即便比例一致,由于样本本身的不同,评估方法仍然不够可靠稳定。需要若干次随机划分并重复实验,对评估值平均作为评估结构。
三、如果拿出太多训练集,则验证精度不稳定。如果拿出太多测试集,则难以训练一个好的模型。常见做法是取2/3~4/5的样本进行训练。
(2)K折交叉验证(最为常见)
做法:首先随机地将已给数据切分为K个互不相交的大小相同的子集;然后利用K-1个子集的数据训练模型,利用余下的子集测试模型;将这一过程对可能的K种选择重复进行;最后选出S次评测中平均测试误差最小的模型。
交加验证的评估结果稳定性和保真性在很大程度上取决于K的取值。
和留出法相似的是,即便同比例划分,但仍然得随机划分并若干次实验。因此评估结果是p次K折交叉验证结果的均值,常见的有10次10折交叉验证(等于实验了100次)。
(3)留一交叉验证
留一法(Leave-One-Out, LOO):是K折交叉验证的极端情况,设数据集有M个样本,让K=M,这样每个子集只有一个样本。
留一法好处:不受随机样本划分方式的影响。留一法中被实际评估的模型和期望评估的用数据集训练出的模型很相似,因此留一法的评估结果往往被认为是比较准确的。
留一法坏处:训练M个模型计算开销很大,而且评估结果也未必永远比其他评估方法准确。
(4)自助法(包外估计)
做法:每次有放回的选取一个样本,选m次得到一个有m个样本的子集,将该集合作为训练集,原数据集去除这个集合里有的样本,得到测试集。
一个样本在m次始终不被选到的概率,并取极限:
也就是说,仍有约1/3的样本(理论上)用于测试。
好处:在数据及较小,难以划分训练/测试集时很有用。自助法能从初始数据集中产生多个不同的训练集,这对集成学习等方法有很大好处。
坏处:自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差。因此在初始数据量足够的时候,留出法和交叉验证法更常用一些。
泛化能力
1、泛化误差
学习方法的泛化能力(generalization ability)是指由该方法学习到的模型对未知数据的预测能力,是学习方法本质上重要的性质。
使用测试误差来评价学习方法的泛化能力是不可靠的,这是由于测试数据是有限的。
如果学到的模型是f^(X),那么用这个模型对未知数据预测的误差即为泛化误差( generalization error):
事实上,泛化误差就是所学习到的模型的期望风险。
2、泛化误差上界
学习方法的泛化能力分析往往是通过研究泛化误差的概率上界进行的,简称为泛化误差上界(genneralization error bound)。具体来说,就是通过比较两种学习方法的泛化误差上界的大小来比较它们的优劣。
泛化误差上界通常具有以下性质:
(1)它是样本容量的函数,当样本容量增加时,泛化上界趋于0;
(2)它是假设空间容量(capacity)的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大。
(此处有个例子,水平不够,未放出,在书P16)
生成模型与判别模型
监督学习方法又可以分为生成方法(generative approach)和判别方法(discriminative approach).所学到的模型分别称为生成模型(geuemtive model)和判别模型(discriminative model)。
(1)生成方法由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(YIX)作为预测的模型,即生成模型
这样的方法之所以称为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系。
典型的生成模型有:朴素贝叶斯法和隐马尔可夫模型。
(2)判别方法由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。判别方法关心的是对给定的输入X,应该预测什么样的输出Y。
典型的判别模型包括k近邻法、感知机、决策树、逻辑斯谛回归模型、最大嫡模型、支持向量机、提升方法和条件随机场等。
分类问题
分类是监督学习的一个核心问题。
在监督学习中,当输出变量Y取有限个离散值时,预测问题就变为分类问题。这时,输入变量X可以是连续的,也可以是离散的。
分类问题包括学习和分类两个过程,学习过程会学到一个分类模型或分类决策函数,称为分类器。分类过程对新的输入进行输出的预测,称为分类。
分类性能的常用的评价是分类准确率((accuracy),其定义是:对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。也就是损失函数是0-1损失时测试数据集上的准确率。
另外常用的评价指标是精确率和召回率,定义如下:
评价标注模型的指标与评价分类模型的指标一样,标注常用的统计学习方法有隐马尔可夫模型、条件随机场。
应用:词性标注,信息抽取等。
如:单词作为一个观测,句子为观测序列,为了搜索居中基本名词短语,标记表示名词短语的“开始”、“结束”、“其他”为B、E、O。
回归问题
回归问题按照输入变量的个数,分为一元回归和多元回归;按照输入变量和输出变量之间关系的类型即模型的类型,分为线性回归和非线性回归。
回归学习最常用的损失函数是平方损失函数,在此情况下,回归问题可以由著名的最小二乘法(least squares)求解。
应用:股价预测等。
性能度量
1、均方误差(回归任务)
2、错误率与精度
3、查准率和查全率
查准率和查全率往往是矛盾的,只有在一些简单任务中,才会出现两者都很高的情况。
4、P-R曲线
当一个曲线完全包含另一个曲线时,我们说分类器性能比较中,前者优于后者。然而二者交叉时往往不好直接比较,人们倾向于综合考虑查全率和查准率进行评价,平衡点由此诞生。
5、F1度量和F贝塔度量
6、宏-查准率、宏-查全率和宏-F1度量&微-查准率、微-查全率和微-F1度量
7、ROC曲线和AUC曲线
8、代价敏感错误率与代价曲线
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:统计学习(统计机器)方法概论 - Python技术站