机器学习--过度拟合

过度拟合(overfitting)是指数据模型在训练集里表现非常满意,但是一旦应用到真实业务实践时,效果大打折扣;换成学术化语言描述,就是模型对样本数据拟合非常好,但是对于样本数据外的应用数据,拟合效果非常差。在我们数据分析挖掘业务实践中,就是“模型搭建时表现看上去非常好,但是应用到具体业务实践时,模型效果显著下降,包括准确率、精度、效果等等显著下降”。

过拟合的第一个原因,就是建模样本抽取错误,包括(但不限于)样本数量太少,抽样方法错误,抽样时没有足够正确考虑业务场景或业务特点,等等导致抽出的样本数据不能有效足够代表业务逻辑或业务场景;

过拟合的第二个原因,就是样本里的噪音数据干扰过大,大到模型过分记住了噪音特征,反而忽略了真实的输入输出间的关系;

过拟合的第三个原因,就是在决策树模型搭建中,如果我们对于决策树的生长没有合理的限制和修剪的话,决策树的自由生长有可能每片叶子里只包含单纯的事件数据(event)或非事件数据(no event),可以想象,这种决策树当然可以完美匹配(拟合)训练数据,但是一旦应用到新的业务真实数据时,效果是一塌糊涂。

过拟合的第四个原因,就是建模时的“逻辑假设”到了模型应用时已经不能成立了。任何预测模型都是在假设的基础上才可以搭建和应用的,常用的假设包括:假设历史数据可以推测未来,假设业务环节没有发生显著变化,假设建模数据与后来的应用数据是相似的,等等。如果上述假设违反了业务场景的话,根据这些假设搭建的模型当然是无法有效应用的。

过拟合的第五个原因,就是建模时使用了太多的输入变量,这跟上面第二点(噪音数据)有些类似,数据挖掘新人常常犯这个错误,自己不做分析判断,把所有的变量交给软件或者机器去“撞大运”。须知,一个稳定优良的模型一定要遵循建模输入变量“少而精”的原则的。

上面的原因都是现象,但是其本质只有一个,那就是“业务理解错误造成的”,无论是抽样,还是噪音,还是决策树,神经网络等等,如果我们对于业务背景和业务知识非常了解,非常透彻的话,一定是可以避免绝大多数过拟合现象产生的。因为在模型从确定需求,到思路讨论,到搭建,到业务应用验证,各个环节都是可以用业务敏感来防止过拟合于未然的。

入世,出世,都是一样的“道”,所谓“道”从来不离开我们半步,只是看我们自身是否足够清净,足够醒悟,足够真实而已。佛法有八万四千法门,但是这些林林总总的都是不同的方便路径,归根结底,佛法的根本只是“认识我们与生俱来的本来面目,真如自性”而已。

过拟合的产生,原因种种,不一而足,但是这种分类和剖析只是人为的方便而已,防止过拟合的终极思路就是真正透彻理解业务背景和业务逻辑,有了这个根本,我们一定可以正确抽样,一定可以发现排除噪声数据,一定可以在决策树、神经网络等算法中有效防止过拟合产生的。

当然,除了上面“业务透彻了解”这个根本外,也有一些技术层面的方法来防止过拟合的产生,虽然是“术”的层面,但是很多人热衷于这些技巧,所以,在这里也顺便列举如下:

最基本的技术手段,就是合理、有效抽样;包括分层抽样,过抽样,等等,用不同的样本去检验模型;

另外,事前准备几个不同时间窗口,不同范围的测试数据集、验证数据集,把模型在不同的数据集里分别“交叉检验”,是目前业界防止过拟合的最常用的手段了;

第三,建模时目标观测值的数量太少,如何分割训练集和验证集的比例,需要建模人员灵活掌握;

第四,如果数据太少的话,谨慎使用神经网络模型,只有足够多的数据的情况下,神经网络模型才可以有效防止过拟合的产生。并且,使用神经网络时,一定要事先有效筛选输入变量,千万不能一股脑把所有变量放进去。

原文地址:https://www.cnblogs.com/tuokid/p/10088640.html

时间: 2024-10-12 23:09:47

机器学习--过度拟合的相关文章

过度拟合(overfitting)

我们之前解决过一个理论问题:机器学习能不能起作用?现在来解决另一个理论问题:过度拟合. 正如之前我们看到的,很多时候我们必须进行nonlinear transform.但是我们又无法确定Q的值.Q过小,那么Ein会很大:Q过大,就会出现过度拟合问题.如下图所示: 那么overfitting具体受什么因素影响呢? 现在我们又两个例子: 第一个例子的数据来源是:一个10-th的目标函数+noise:第二个例子的数据来源是:一个50-th的目标函数.现在我们用2-th函数(H2)和10-th函数(H1

overfitting(过度拟合)的概念

来自:http://blog.csdn.net/fengzhe0411/article/details/7165549 最近几天在看模式识别方面的资料,多次遇到“overfitting”这个概念,最终觉得以下解释比较容易接受,就拿出来分享下. overfittingt是这样一种现象:一个假设在训练数据上能够获得比其他假设更好的拟合,但是在训练数据外的数据集上却不能很好的拟合数据.此时我们就叫这个假设出现了overfitting的现象.出现这种现象的主要原因是训练数据中存在噪音或者训练数据太少.而

避免过度拟合之正则化(转)

避免过度拟合之正则化 “越少的假设,越好的结果” 商业情景: 当我们选择一种模式去拟合数据时,过度拟合是常见问题.一般化的模型往往能够避免过度拟合,但在有些情况下需要手动降低模型的复杂度,缩减模型相关属性. 让我们来考虑这样一个模型.在课堂中有10个学生.我们试图通过他们过去的成绩预测他们未来的成绩.共有5个男生和5个女生.女生的平均成绩为60而男生的平均成绩为80.全部学生的平均成绩为70. 现在有如下几种预测方法: 1 用70分作为全班成绩的预测 2 预测男生的成绩为80分,而女生的成绩为6

避免过度拟合之正则化

避免过度拟合之正则化 “越少的假设,越好的结果” 商业情景: 当我们选择一种模式去拟合数据时,过度拟合是常见问题.一般化的模型往往能够避免过度拟合,但在有些情况下需要手动降低模型的复杂度,缩减模型相关属性. 让我们来考虑这样一个模型.在课堂中有10个学生.我们试图通过他们过去的成绩预测他们未来的成绩.共有5个男生和5个女生.女生的平均成绩为60而男生的平均成绩为80.全部学生的平均成绩为70. 现在有如下几种预测方法: 1 用70分作为全班成绩的预测 2 预测男生的成绩为80分,而女生的成绩为6

过度拟合问题

Underfitting (欠拟合) Overfitting (过拟合) 解决拟合的方法 线性回归正则化 欠拟合/高偏差(high bias) 过拟合/高方差(high variance) 过拟合与欠拟合也可以用 Bias 与 Variance 的角度来解释,欠拟合会导致高 Bias ,过拟合会导致高 Variance ,所以模型需要在 Bias 与 Variance 之间做出一个权衡. 特征过多但是训练集很小,就和容易出现过度拟合的问题. 过拟合的缺点就是不能够很好地泛化到新样本. 解决欠拟合

23-过犹不及:正则化方法防止过度拟合

有时我想:如果我能复制好几份,每个自己都活在不同的平行宇宙多好.人都有永恒不朽的愿望,也有尽善尽美的追求.我们的征途是星辰大海,然而现实中常在泥潭里打滚--想起了一个笑话:Arguing with an Engineer is a lot like wrestling in the mud with a pig, after a couple of hours your realize the pig likes it.很好的自我写照.现实让人焦头烂额,但一味地苛求自己并不是办法,往往还会事倍功

Machine Learning — 关于过度拟合(Overfitting)

机器学习是在模型空间中选择最优模型的过程,所谓最优模型,及可以很好地拟合已有数据集,并且正确预测未知数据. 那么如何评价一个模型的优劣的,用代价函数(Cost function)来度量预测错误的程度.代价函数有很多中,在Ng的视频中,Linear Regression用的是平方代价函数: Logistic Regression 用的是对数似然代价函数: 对于给定的含m个样本的数据集,其平均损失称为经验风险. 损失函数越小,模型就越好. 我们来分析那个房价预测问题,假设房价面积A,楼层L,房间数N

机器学习之拟合和过拟合问题

过拟合:当某个模型过度的学习训练数据中的细节和噪音,以至于模型在新的数据上表现很差,我们称过拟合发生了,通俗点就是:模型在训练集中测试的准确度远远高于在测试集中的准确度. 过拟合问题通常发生在变量特征过多的时候.这种情况下训练出的方程总是能很好的拟合训练数据,也就是说,我们的代价函数可能非常接近于0或者就为0,使其拟合只局限于训练样本中,无法很好预测其他新的样本. 欠拟合:在训练数据和未知数据上表现都很差 解决过拟合问题的方法主要有: 1. 减少特征数量,通过人工或者算法选择哪些特征有用保留,哪

机器学习——过拟合问题

下面主要总结线性回归与逻辑回归下的过拟合问题. [过拟合问题的定义] [过拟合问题的解决方法] 怎样解决过拟合问题呢?两个方法: 1. 减少feature个数(人工定义留多少个feature.算法选取这些feature) 2. 正则化(留下所有的feature,但对于部分feature定义其parameter非常小) 下面我们将对线性回归与逻辑回归的正则化进行详细的讲解. [一.线性回归的正则化] 过拟合现象如图(右)所示 试想在不改变特征数的条件下,如何使这些特征更好的拟合数据呢??由图(中)