《机器学习》西瓜书读书笔记2

2.1:经验误差与过拟合

通常我们把分类错误的样本数占样本总数的比例称为“错误率”,相应的。精度即“1-错误率”。更一般的,我们把学习器的实际预测输出和样本的真实输出之间的差异称为“误差”。

*需要注意,这里所说的误差均是指的是误差期望。

学习器在训练集上的误差称为“训练误差”或者“经验误差”,在新样本上的误差称之为“泛化误差”。

我们现在努力做得是把经验误差最小化。我们实际希望的,是在样本上能表现出来的很好的学习器。为了达到这个目的,应该从训练样本上尽可能的学出适用于所有潜在样本的“普遍规律”,这样才能在遇到新样本时做出正确的判别。但是当训练样本在训练的时候已经把自身的一些特点当做了所有潜在样本的一个普遍规律时,这样就会导致泛化能力的下降。这样的问题在机器学习中就叫做“过拟合”。

李航在《统计机器学》中的过拟合定义:

过拟合是指在学习时选择模型所包含的参数过多,以至于出现这一模型对已知数据预测的很好,但是对未知数据预测的很差的现象。可以说模型的选择旨在避免过拟合并且提高模型的预测能力。对于模型的选择,理想的解决方案当然是对候选模型的泛化能力进行评估,去选择泛化误差最小的那个模型。

有很多的因素导致过拟合,最常见的情况是因为学习能力太过于强大,以至于把训练样本所包含的不太一般的数据都可以学到了,而欠拟合则是因为学习能力低下所造成的。而学习能力是否“过于强大”。是由学习算法和数据内涵共同决定的。

现在来说过拟合是机器学习面临的关键障碍,各类学习算法都必然带有一个针对过拟合的措施;然而必须认识到,过拟合是无法彻底避免的,我们所做的只是缓解,或者说减少风险。

在书中提到了机器学习面临的问题是NP难甚至更难。这里的NP:一个能在多项式时间内验证证明是否正确题目的难度。这里的P顾名思义:一个能在多项式内证明题目的难度。并且NP是多年来无法解决的问题的总和,如果解决一个这个集合的问题,所有的问题也都解决了。

2.2:评估方法

通常情况下,我们可以通过实验测试来对学习器的泛化误差评估进行评估并进一步作出选择。但是在现实任务中往往还会考虑时间开销,存储开销,可解释性等方面的因素。在这里只考虑泛化的误差。

在实际情况下,我们一般会使用一个测试集来测试学习器对新样本的判别能力,然后以测试机上的“测试误差”作为泛化误差的近似。

*应该注意,测试集应该尽可能与训练集相互排斥,即训练样本尽量不在训练集中出现,未在训练过程中使用过。

当我们只有一个包含m个样例的数据集D时,即需要训练,又要测试,应该通过对D的处理,从中产生训练集S和测试集T。

2.2.1:留出法

“留出法”是直接将数据集D划分为两个互斥的集合,其中一个作为训练集S,另一个作为测试集T,即D包括S和T,但是S和T的之间为空集。在S训练处模型后,用T来评估测试误差,对于泛化误差的估计。

*需要注意的是,训练或测试集的划分要尽可能的保持数据分布的一致性,避免因数据划分过程引入额外的偏差从而对最终结果产生影响。因为如果S,T的样本类别比例差别很大,则误差估计将由于训练/测试数据的分部的差异而产生差异。

*另一个要注意的问题是,即便在给定训练/测试集样本比例后,仍然产生多种的划分方式对初始的数据D进行分割,因为这些不同的划分将导致不同的训练/测试集,相应的,模型的评估的使用也会有差别,因此在单次使用留出法得到的估计结果往往不够稳定可靠,在做出留出法时,一般要采用若干次随机划分,重复进行实验评估后取平均值作为留出法的评估结果。同时可以得到估计结果的标准差。现在常用的方法是将大约60-70%的数据进行训练,剩下的进行测试。一般而言,测试集至少包括30个样例。

2.2.2:交叉验证法

这个就是我们经常使用的K倍交叉验证法,其实很大程度上,交叉验证法评估结果的稳定性和保真性很大程度上取决于K的取值。

与留出法相似,将数据集D划分为K个子集同样存在于多种划分方式,为减少因样本划分不同而引入的差别,K折交叉验证通常要随机使用不同的划分P次,最终的评估结果就是这次P次K折交叉验证的结果的均值。

*10次10折交叉验证与100次留出法都是进行了100次的训练测试

留一法优缺点:

优点:留一法不受随机样本划分方式的影响,因为m个样本只有唯一的方式划分为m个子集,并且每个子集中包含一个样本;留一法的使用的训练集和初始的数据集只少了一个样本。这就使得在绝大多数情况下,留一法中被实际评估的模型和用D期望评估的训练模型很相似。因此留一法的评估结果往往被认为比较准确的。然而在数据比较大的时候,训练M个数据模型的计算开销是难以忍受的,并且根据NFL定理,留一法的估计结果也未必永远比其他方法准确。

2.2.3:自助法

自助法在数据集小,难以有效划分训练测试集时很有用,此外,自助法能从初始数据集中产生多个不同的训练集,这对集成学习等方法有很大的好处。然而,自助法产生的数据集改变了初始数据集的分步,这样就会引入估计偏差。因此在数据量充足时,常用留出法和交叉验证法。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

赫尔辛基大学AI基础教程:先进的神经网络技术(5.3节)

在赫尔辛基大学AI基础教程前一节中,我们讨论了大多数神经网络方法的基本思想:多层神经网络,非线性激活函数并学习了反向传播算法。

792
来自专栏专知

迁移学习在深度学习中的应用

▌简介 ---- 迁移学习是一种机器学习方法,其中为一个任务开发的模型可以在另一个任务中重用。 迁移学习是深度学习中的一种流行方法,其中预训练(pre-trai...

2895
来自专栏大数据挖掘DT机器学习

SIFT特征提取分析(附源码)

SIFT(Scale-invariant feature transform)是一种检测局部特征的算法,该算法通过求一幅图中的特征点(interest poin...

4445
来自专栏大数据挖掘DT机器学习

逻辑回归、决策树和支持向量机

作者:赵屹华,计算广告工程师@搜狗, http://www.csdn.net/article/2015-11-26/2826332 这篇文章,我们将讨论如何在逻...

2774
来自专栏机器之心

学界 | Tomaso Poggio深度学习理论:深度网络「过拟合缺失」的本质

过去几年来,深度学习在许多机器学习应用领域都取得了极大的成功。然而,我们对深度学习的理论理解以及开发原理的改进能力上都有所落后。如今对深度学习令人满意的理论描述...

1152
来自专栏IT派

机器学习算法再比较

原文地址:http://www.csuldw.com/2016/02/26/2016-02-26-choosing-a-machine-learning-cla...

3434
来自专栏PPV课数据科学社区

机器学习算法比较

本文主要回顾下几个常用算法的适应场景及其优缺点!(提示:部分内容摘自网络)。 机器学习算法太多了,分类、回归、聚类、推荐、图像识别领域等等,要想找到一个合适算法...

2869
来自专栏进击的程序猿

神经网络基础知识

我们可以调整参数/权重W,使得映射的结果和实际类别吻合,而损失函数用来来衡量吻合度。

852
来自专栏机器学习、深度学习

人群计数--Cross-scene Crowd Counting via Deep Convolutional Neural Networks

Cross-scene Crowd Counting via Deep Convolutional Neural Networks CVPR2015 本文主...

3126
来自专栏华章科技

机器学习算法比较

机器学习算法太多了,分类、回归、聚类、推荐、图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验。通常最开始...

1053

扫码关注云+社区