西瓜书打卡Task6

过拟合与欠拟合及其解决方法

我们在进行模型训练的时候会出现模型不能够很好地拟合数据的情况,这个时候就需要我们来判断究竟现在的模型是欠拟合还是过拟合。

1. 欠拟合

首先欠拟合就是模型没有很好地捕捉到数据特征,不能够很好地拟合数据

  • training error

  • cross validation error

  • test error

解决方法:

1)添加其他特征项,有时候我们模型出现欠拟合的时候是因为特征项不够导致的,可以添加其他特征项来很好地解决。例如,“组合”、“泛化”、“相关性”三类特征是特征添加的重要手段,无论在什么场景,都可以照葫芦画瓢,总会得到意想不到的效果。除上面的特征之外,“上下文特征”、“平台特征”等等,都可以作为特征添加的首选项。

2)添加多项式特征,这个在机器学习算法里面用的很普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强。例如上面的图片的例子。

3)减少正则化参数,正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。

2. 过拟合

通俗一点地来说过拟合就是模型把数据学习的太彻底,以至于把噪声数据的特征也学习到了,这样就会导致在后期测试的时候不能够很好地识别数据,即不能正确的分类,模型泛化能力太差。

解决方法:

1)重新清洗数据,导致过拟合的一个原因也有可能是数据不纯导致的,如果出现了过拟合就需要我们重新清洗数据。

2)增大数据的训练量,还有一个原因就是我们用于训练的数据量太小导致的,训练数据占总数据的比例过小。

3)采用正则化方法。正则化方法包括L0正则、L1正则和L2正则,而正则一般是在目标函数之后加上对于的范数。但是在机器学习中一般使用L2正则,下面看具体的原因。

L0范数是指向量中非0的元素的个数。L1范数是指向量中各个元素绝对值之和,也叫“稀疏规则算子”(Lasso regularization)。两者都可以实现稀疏性,既然L0可以实现稀疏,为什么不用L0,而要用L1呢?个人理解一是因为L0范数很难优化求解(NP难问题),二是L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解。所以大家才把目光和万千宠爱转于L1范数。

L2范数是指向量各元素的平方和然后求平方根。可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0。L2正则项起到使得参数w变小加剧的效果,但是为什么可以防止过拟合呢?一个通俗的理解便是:更小的参数值w意味着模型的复杂度更低,对训练数据的拟合刚刚好(奥卡姆剃刀),不会过分拟合训练数据,从而使得不会过拟合,以提高模型的泛化能力。还有就是看到有人说L2范数有助于处理 condition number不好的情况下矩阵求逆很困难的问题(具体这儿我也不是太理解)。

4)采用dropout方法。这个方法在神经网络里面很常用。dropout方法是ImageNet中提出的一种方法,通俗一点讲就是dropout方法在训练的时候让神经元以一定的概率不工作

评估学习器的方法

(1)留出法:

定义:直接将集合划分为两个互斥的集合,其中一个作为训练集合,一个作为测试集合

注意:

(a)测试集合和训练集合尽可能保持数据分布的一致性,比如要保证正反样本的比例不变(这是一种导致过拟合的原因)

(b)在给定了训练/测试集合的样本比例之后,仍要存在多种的划分方式,对数据集合D进行分割。毕竟单次的使用留出法的结果往往是不可靠的。一般要采用若干次的随即划分,重复进行实验评估后取得平均值作为留出法的最终评估结果

(c)训练/测试集合的大小比例问题。测试集合过小,会导致测评结果的方差变大;训练集合过小,会导致偏差过大,一般使用的都是2/3~4/5的样本用于训练

(2)交叉验证法(无放回的重采样)

交叉验证方法还有一个特例:留一法(Leave-one-out,LOO)。显然留一法不受随即样本划分的影响,因为m个样本只有唯一的方式划分为m个子集,每个子集包含一个样本。由于使用的训练数据集合和初始数据集合相比只是少了一个数据,那么相应训练出来的模型就会很相似,实践认为,留一法的评估结果往往是比较准确的。但是留一法存在性能上的缺陷。比如,m个样本就要训练m个模型,当m比较大的时候,那么就比较麻烦了

优点:

1. 在处理较小的数据集合的时候我们一般会使用较大的k值来增加,根据NX(1-1/k)较大的k使得在每次的迭代中会有更小的数据bias,但是同时会导致validation的时间变长,而且也会导致high Variance。也可以看出,LOO更适合小数据集上的训练

2. 那么数据较大的时候我们一般会使用较小的k值

(3)自助法Bootstrapping(有放回的重采样)

有放回的随机采样方法。我们可以做一个简单的估计,样本在m次采样的过程中始终不被采到的概率是(1-1/m)^m,对m取极限,得到1/e=0.368。也就是说,通过自助法,初始数据集合中大概有36.38%的样本未出现在采样数据集合D’中,于是我们可以将D‘作为训练集合,剩下的数据作为测试集合,那么我们对这中大概有1/3的样本没在测试集合中出现的测试称作包外估计(out-of-bag estimate)

优点:

1. 数据集合较小,难以有效划分训练/测试集时很有用

2. 能从训练集合中产生很多不同的训练集,这对集成学习等方法很有好处

缺点:

改变了初始数据的分布,会引入偏差。因此如果初始的数据量足够的时候还是希望使用留出法和交叉验证法比较好

如何度量模型性能

一、ROC曲线和P-R曲线
1.precision、TPR(召回率)、FPR
首先在评估预测时会想到模型的正确率,也就是precision,但是在样本数不均衡的情况下此值没有意义
在二分类中通常用到 TPR 和 FPR

召回率 (Recall) = TPR = 查全率 :正样本有多少被找出来了(召回了多少) - 或者预测的正样本的正确率
精确率 (Precision) = 查准率 :预测认为的正样本,有多少猜对了(猜的准确性如何)
FPR: 预测的负样本的错误率
如图:

,图中圆圈内部是模型的预测的正样例值 ,圈外是模型预测的负样例(同时还能看到实际的正例和负例)取图形单词的首字母:
precision = TP / ( TP + FP )
recall = TPR = TP / (TP + FN )
FPR = FP / ( FP + TN )

2.ROC曲线和AUC指标
根据模型的预测结果对记录进?排序,按此顺序逐个对记录作为正样本进?预测,计算得到 FPR 和 TPR 。 以FPR为横轴,以TPR为纵轴,得到ROC曲线,同时曲线与坐标轴围成的面积是AUC指标

模型ROC曲线有交叉时, AUC?的模型性能优于AUC?的模型
3.P - R 曲线
P = precision(查准率)
R = Recall = TPR (查全率)
所以:P - R 曲线 是以 R 为横坐标,以P为纵坐标得到的坐标系曲线,如图:

1 .平衡点?的模型性能优于平衡点?的模型
2 . 在医院的初筛指标中,我们更看重的是准确率和召回率。即需要召回率来看,诊断能否覆盖更多的病例,同时需要准确率来看,预测的准确性

方差——偏差分解

偏差-方差分解(Bias-Variance Decomposition)是统计学派看待模型复杂度的观点。Bias-variance分解是机器学习中一种重要的分析技术。给定学习目标和训练集规模,它可以把一种学习算法的期望误差分解为三个非负项的和,即样本真实噪音noise、bias和 variance。

noise 样本真实噪音是任何学习算法在该学习目标上的期望误差的下界;( 任何方法都克服不了的误差)
bias 度量了某种学习算法的平均估计结果所能逼近学习目标的程度;(独立于训练样本的误差,刻画了匹配的准确性和质量:一个高的偏差意味着一个坏的匹配)
variance 则度量了在面对同样规模的不同训练集时,学习算法的估计结果发生变动的程度。(相关于观测样本的误差,刻画了一个学习算法的精确性和特定性:一个高的方差意味着一个不稳定的匹配)。

偏差度量了学习算法期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;噪声表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度……泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小。

比较检验

首先,我们希望比较的是泛化性能,然而通过实验评估方法我们获得的是测试集上的性能,两者的对比结果可能未必相同;第二,测试集上的性能与测试集本身的选择有很大关系,且不论使用不同大小的测试集会得到不同的结果,即使用相同大小的测试集?若包含的测试样例不同,测试结果也会有不同;第二,很多机器学习算法本身有一定的随机性,即便用相同的参数设置在同一个测试集上多次运行,其结果也会有不同。

 

原文地址:https://www.cnblogs.com/zhgmen/p/11135302.html

时间: 2024-10-23 22:30:23

西瓜书打卡Task6的相关文章

《机器学习》 --周志华版(西瓜书)--课后参考答案

<机器学习> --周志华版(西瓜书)--课后参考答案 对机器学习一直很感兴趣,也曾阅读过李航老师的<统计学习导论>和Springer的<统计学习导论-基于R应用>等相关书籍,但总感觉自己缺乏深入的理解和系统的实践.最近从实验室角落觅得南京大学周志华老师<机器学习>一书,随意翻看之间便被本书内容文笔深深吸引,如获至宝.遂决定要认真学习本书并将学习过程记录下来.感觉若以读书笔记的形式做记录未免枯燥(且网上已有大量相关内容).那就暂且将课后练习的个人思路和答案写成

我与西瓜书2外传----More about LinearRegression

之前讲过了一种求解LR(LinearRegression)的方法--范数方程(Normal Equation).这个是西瓜书上讲的方法,其中在andrew Ng的公开课中还讲了很多其实还有另外一种求解参数方法:梯度下降(Gradient Descent),其中内容包括批梯度下降(Batch gradient descent)和随机梯度下降(Stochastic gradient descent). 另外,公开课中还讲解了cost function的概率解释,局部加权回归(LMR).这一篇博客,我

《机器学习》西瓜书 第一章 绪论

机器学习绪论 基本术语 基础 模型:泛指从数据中学得的结果 数据集 data set:一组记录的集合 示例 instance/样本 sample:关于一个事件或对象的描述 属性 attribute/特征 feature:反映事件或对象在某方面的表现或性质的事项 属性值 attribute value:属性上的取值 属性空间 attribute space/样本空间 sample space:属性张成的空间即 \(n\) 个特征描述出的 \(n\) 维空间 特征向量 feature vector:

西瓜书与蓝皮书 思维导图(转)

周志华著<西瓜书>思维导图 第一章:https://blog.csdn.net/liuyan20062010/article/details/68489427 第二章:https://blog.csdn.net/liuyan20062010/article/details/70054668 第三章:https://blog.csdn.net/liuyan20062010/article/details/70054758 第四章:https://blog.csdn.net/liuyan20062

【转】《西瓜书机器学习详细公式推导版》发布

转自:https://github.com/datawhalechina/pumpkin-book https://mp.weixin.qq.com/s/FcwgjS4FXfGJPZEQEz3cVw 南瓜书PumpkinBook 周志华老师的<机器学习>(西瓜书)是机器学习领域的经典入门教材之一,周老师为了使尽可能多的读者通过西瓜书对机器学习有所了解, 所以在书中对部分公式的推导细节没有详述,但是这对那些想深究公式推导细节的读者来说可能“不太友好”,本书旨在对西瓜书里比较难理解的公式加以解析,

《机器学习》 西瓜书习题 第 2 章

习题 \(2.1\) 数据集包含 \(1000\) 个样本, 其中 \(500\) 个正例.\(500\) 个反例, 将其划分为包含 \(70\%\) 样本的训练集和 \(30\%\) 样本的测试集用于留出法评估, 试估算共有多少种划分方式. 如果划分要保证正例和反例一样多的话, 那么划分方式数量 \(n\) 有 \[\begin{aligned} n &= C^{500\times35\%}_{500}\times C_{500}^{500\times 35\%}\&=(C^{175}_

西瓜书第二章--模型评估与选择

2.1 经验误差与过拟合 错误率:错分样本的占比 精度:分对样本的占比,与错误率是互补的. 误差:样本真实输出与预测输出之间的差异.学习器在训练集上的误差称为训练误差或经验误差,在新样本上的误差称为泛化误差. 由于事先并不知道新样本的特征,我们只能努力使经验误差最小化: 很多时候虽然能在训练集上做到分类错误率为零,但多数情况下这样的学习器并不好 过拟合:学习器把训练样本学习的“太好”,将训练样本本身的特点 当做所有样本的一般性质,导致泛化性能下降: 解决措施:1.优化目标加正则项 :2.earl

《机器学习》西瓜书习题 第 3 章

习题 3.1 试析在什么情况下式 \((3.2)\) 中不必考虑偏置项 \(b\) . 书中有提到, 可以把 \(x\) 和 \(b\) 吸收入向量形式 \(\hat{w} = (w;b)\) .此时就不用单独考虑 \(b\) 了. 3.2 试证明, 对于参数 \(w\), 对率回归的目标函数 \((3.18)\) 是非凸的, 但其对数似然函数 \((3.27)\) 是凸的. \[y = \frac{1}{1 + e^{-(\boldsymbol w^\mathrm T\boldsymbol x

《机器学习》西瓜书习题 第 4 章

习题 4.1 试证明对于不含冲突数据 (即特征向量完全相同但标记不同) 的训练集, 必存在与训练集一致 (即训练误差为 0)的决策树. 既然每个标记不同的数据特征向量都不同, 只要树的每一条 (从根解点到一个叶节点算一条) 枝干代表一种向量, 这个决策树就与训练集一致. 4.2 试析使用 "最小训练误差" 作为决策树划分选择准则的缺陷. \(4.1\) 说明了如果数据不冲突, 可以完全拟合数据集, 这正是使用 "最小训练误差" 作为决策树划分选择准则的结果. 而这是