机器学习之一:模型评估与选择

之前认真看了一遍《机器学习》,最近想快速过第二遍,并记录下重要内容。

回看之前自己写的东西,好像自己一直倾向于只记录干货,这样的结果就是写出的东西很噎人....嗯...不敢回看...之前组会汇报时,老板也有提过,对一些概念/公式的来龙去脉并没有很清晰的展现出来,今后要注意这一方面。站在读者/听众的角度考虑,哪些知识是大家已知的,哪些是大家很模糊需要阐释清楚的,不要急着向外扔干货,要有铺垫/交待。

Ok..今天总结一下《机器学习》的第二章

机器学习实际上是通过一定量的已观测数据学习一个模型,使得该模型可有效判决新样本(有监督学习中的分类和回归任务,无监督学习中的聚类任务)。我们希望学得泛化误差尽可能小的模型,但由于新样本是未知的,只能做到使经验误差(训练误差)尽可能小。

一、过拟合/欠拟合

1)定义:

过拟合:训练过充分,将训练样本自身的一些特点当作所有样本都具有的一般性质,往往泛化性能较差;

欠拟合:训练不充分,训练样本的一般性质尚未学好;

2)原因及解决方案:

学习能力过于强大会容易导致过拟合;学习能力低下易导致欠拟合。

过拟合的解决方案:减小模型复杂度,如引入正则项

扫描二维码关注公众号,回复: 450663 查看本文章

欠拟合的解决方案:增加模型复杂度,如决策树学习中扩展分支、神经网络学习中增加训练轮数

需注意的是,由于欠拟合可容易避免,避免过拟合却很难,因此过拟合往往是机器学习中的关键障碍。

二、评估方法

既然无法获取泛化误差,我们可以从训练样本中分离出一部分样本作为测试样本,并将模型对测试样本的评估结果(测试误差)作为泛化误差的近似。分离方法主要有以下三种:

1)留出法(Hold-out)

留出法采用分层抽样的方式直接将数据集划分为两个互斥的集合。其中,分层抽样是指保留类别比例的采样方式,用分层抽样可尽可能保持数据分布的一致性,从而避免由数据划分方式不同引入的偏差。

此外,由于单次留出法得到的结果往往不够可靠,可采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。

2)交叉验证法(Cross Validation)

交叉验证法先将数据集划为k个大小相似的互斥子集,每次选取其中一个子集做测试集,将其余k-1个子集合并做训练集,共进行k次测试和训练,返回k次测试结果的均值。每个子集由分层采样得到。

与留出法类似,为减小因样本划分不同而引入的差别,k折交叉验证通常要随机使用不同的划分重复p次,对p次k折结果取平均。

若数据集中包含m个样本,则k=m时,得到留一法(leave one out)。

3)自助法(Bootstrap)

自助法即通过有放回的抽样得到训练集,将未被选取过的样本作为测试集。

自助法使用于数据集较小,难以有效划分训练/测试集的情况;但自助法产生的训练集改变了初始数据集的分布,会引入估计偏差。

小结:数据量足够时,常用留出法和交叉验证法。数据量不足时,采用自助法。

三、性能度量

1)回归任务:均方误差 

2)  分类任务:错误率、精度、查准率、查全率、F1、ROC、AUC、代价敏感错误率与代价曲线

四、比较检验

统计假设检验为我们进行学习器性能比较提供了重要依据。

1)假设检验:先假设学习器泛化错误率满足某种分布,再判断该假设是否成立(若成立则接受,否则拒绝)

2)交叉验证t检验

3)McNemar检验、Friedman检验、Nemenyi后续检验

五、偏差与方差

基于均方误差的回归任务可推导出:泛化误差 = 偏差 + 方差 + 噪声;

偏差:期望输出与真实标记的差别,偏差刻画了学习算法本身的拟合能力

方差:期望输出与实际输出的差别,方差刻画了数据扰动造成的影响

噪声:实际输出与真实标记的差别,噪声刻画了学习问题本身的难度

欠拟合:偏差较大、方差较小

过拟合:方差较大、偏差较小


内容参照:《机器学习》周志华

猜你喜欢

转载自blog.csdn.net/qq_24153697/article/details/79910940