如何防止决策树过拟合的几种方法

大战略2009
如何防⽌决策树过拟合的⼏种⽅法
⼀.什么是过度拟合数据
过度拟合(overfitting)的标准定义:给定⼀个假设空间H,⼀个假设h属于H,如果存在其他的假设h'属于H,使得在训练样例上h的错误率⽐
h'⼩,但在整个实例分布上h'⽐h的错误率⼩,那么就说假设h过度拟合训练数据.
overfittingt是这样⼀种现象:⼀个假设在训练数据上能够获得⽐其他假设更好的拟合,但是在训练数据外的数据集上却不能很好的拟合数据.此时我们就叫这个假设出现了overfitting的现象.
⼆.产⽣过度拟合数据问题的原因有哪些?
原因1:样本问题
(1)样本⾥的噪⾳数据⼲扰过⼤,⼤到模型过分记住了噪⾳特征,反⽽忽略了真实的输⼊输出间的关系;(什么是噪⾳数据?)
anycasting(2)样本抽取错误,包括(但不限于)样本数量太少,抽样⽅法错误,抽样时没有⾜够正确考虑业务场景或业务特点,等等导致抽出的样本数据不能有效⾜够代表业务逻辑或业务场景;
(3)建模时使⽤了样本中太多⽆关的输⼊变量。
原因2:构建决策树的⽅法问题
在决策树模型搭建中,我们使⽤的算法对于决策树的⽣长没有合理的限制和修剪的话,决策树的⾃由⽣长有可能每⽚叶⼦⾥只包含单纯的事件数据或⾮事件数据,可以想象,这种决策树当然可以完美匹配(拟合)训练数据,但是⼀旦应⽤到新的业务真实数据时,效果是⼀塌糊涂。
潘恩思
上⾯的原因都是现象,但是其本质只有⼀个,那就是“业务逻辑理解错误造成的”,⽆论是抽样,还是噪⾳,还是决策树等等,如果我们对于业务背景和业务知识⾮常了解,⾮常透彻的话,⼀定是可以避免绝⼤多数过拟合现象产⽣的。因为在模型从确定需求,到思路讨论,到搭建,到业务应⽤验证,各个环节都是可以⽤业务敏感来防⽌过拟合于未然的。
三.如何解决过度拟合数据问题的发⽣?
针对原因1的解决⽅法:
合理、有效地抽样,⽤相对能够反映业务逻辑的训练集去产⽣决策树;
针对原因2的解决⽅法(主要):
剪枝:提前停⽌树的增长或者对已经⽣成的树按照⼀定的规则进⾏后剪枝。
剪枝的⽅法
剪枝是⼀个简化过拟合决策树的过程。有两种常⽤的剪枝⽅法:
(1)先剪枝(prepruning):通过提前停⽌树的构建⽽对树“剪枝”,⼀旦停⽌,节点就成为树叶。该树叶可以持有⼦集元组中最频繁的类;
先剪枝的⽅法
有多种不同的⽅式可以让决策树停⽌⽣长,下⾯介绍⼏种停⽌决策树⽣长的⽅法:
限制决策树的⾼度和叶⼦结点处样本的数⽬
1.定义⼀个⾼度,当决策树达到该⾼度时就可以停⽌决策树的⽣长,这是⼀种最为简单的⽅法;
2.达到某个结点的实例具有相同的特征向量,即使这些实例不属于同⼀类,也可以停⽌决策树的⽣长。这种⽅法对于处理数据中的数据冲突问题⾮常有效;
3.定义⼀个阈值,当达到某个结点的实例个数⼩于该阈值时就可以停⽌决策树的⽣长;
4.定义⼀个阈值,通过计算每次扩张对系统性能的增益,并⽐较增益值与该阈值的⼤⼩来决定是否停⽌决策树的⽣长。
(2)后剪枝(postpruning):它⾸先构造完整的决策树,允许树过度拟合训练数据,然后对那些置信度不够的结点⼦树⽤叶⼦结点来代替,该叶⼦的类标号⽤该结点⼦树中最频繁的类标记。后剪枝的剪枝过程是删除⼀些⼦树,然后⽤其叶⼦节点代替,这个叶⼦节点所标识的类别通过⼤多数原则(majority class criterion)确定。所谓⼤多数原则,是指剪枝过程中, 将⼀些⼦树删除⽽⽤叶节点代替,这个叶节点所标识的类别⽤这棵⼦树中⼤多数训练样本所属的类别来标识,所标识的类称为majority class .相⽐于先剪枝,这种⽅法更常⽤,正是因为在先剪枝⽅法中精确地估计何时停⽌树增长很困难。
后剪枝的⽅法
1)REP⽅法是⼀种⽐较简单的后剪枝的⽅法,在该⽅法中,可⽤的数据被分成两个样例集合:⼀个训练集⽤来形成学习到的决策树,⼀个分离的验证集⽤来评估这个决策树在后续数据上的精度,确切地说是⽤来评估修剪这个决策树的影响。这个⽅法的动机是:即使学习器可能会被训练集中的随机错误和巧合规律所误导,但验证集合不⼤可能表现出同样的随机波动。所以验证集可以⽤来对过度拟合训练集中的虚假特征提供防护检验。
该剪枝⽅法考虑将书上的每个节点作为修剪的候选对象,决定是否修剪这个结点有如下步骤组成:
1:删除以此结点为根的⼦树
2:使其成为叶⼦结点
3:赋予该结点关联的训练数据的最常见分类
4:当修剪后的树对于验证集合的性能不会⽐原来的树差时,才真正删除该结点
因为训练集合的过拟合,使得验证集合数据能够对其进⾏修正,反复进⾏上⾯的操作,从底向上的处理结点,删除那些能够最⼤限度的提⾼验证集合的精度的结点,直到进⼀步修剪有害为⽌(有害是指修剪会减低验证集合的精度)。
REP是最简单的后剪枝⽅法之⼀,不过由于使⽤独⽴的测试集,原始决策树相⽐,修改后的决策树可能偏向于过度修剪。这是因为⼀些不会再测试集中出现的很稀少的训练集实例所对应的分枝在剪枝过如果训练集较⼩,通常不考虑采⽤REP算法。
尽管REP有这个缺点,不过REP仍然作为⼀种基准来评价其它剪枝算法的性能。它对于两阶段决策树学习⽅法的优点和缺点提供了了⼀个很好的学习思路。由于验证集合没有参与决策树的创建,所以⽤REP剪枝后的决策树对于测试样例的偏差要好很多,能够解决⼀定程度的过拟合问题。
2)PEP,悲观错误剪枝,悲观错误剪枝法是根据剪枝前后的错误率来判定⼦树的修剪。该⽅法引⼊了统计学上连续修正的概念弥补REP中的缺陷,在评价⼦树的训练错误公式中添加了⼀个常数,假定每个叶⼦结点都⾃动对实例的某个部分进⾏错误的分类。它不需要像REP(错误率降低修剪)样,需要⽤部分样本作为测试数据,⽽是完全使⽤训练数据来⽣成决策树,⼜⽤这些训练数据来完成剪枝。决策树⽣成和剪枝都使⽤训练集, 所以会产⽣错分。
把⼀棵⼦树(具有多个叶⼦节点)的分类⽤⼀个叶⼦节点来替代的话,在训练集上的误判率肯定是上升的,但是在测试数据上不⼀定,我们需要把⼦树的误判计算加上⼀个经验性的惩罚因⼦,⽤于估计它在测试数据上的误判率。对于⼀棵叶⼦节点,它覆盖了N个样本,其中有E个错误,那么该叶⼦节点的错误率为(E+0.5)/N。这个0.5就是惩罚因⼦,那么对于该棵⼦树,假设它有L个叶⼦节点,则该⼦树的误判率估计为:
剪枝后该⼦树内部节点变成了叶⼦节点,该叶⼦结点的误判个数J同样也需要加上⼀个惩罚因⼦,变成J+0.5。那么⼦树是否可以被剪枝就取决于剪枝后的错误J+0.5在
超材料天线
的标准误差内。对于样本的误差率e,我们可以根据经验把它估计成伯努利分布,那么可以估计出该⼦树的误判次数均值和标准差
东北大学校长活捉东南大学校长使⽤训练数据,⼦树总是⽐替换为⼀个叶节点后产⽣的误差⼩,但是使⽤校正的误差计算⽅法却并⾮如此。剪枝的条件:当⼦树的误判个数⼤过对应叶节点的误判个数⼀个标准差之后,就决定剪枝:
这个条件就是剪枝的标准。当然并不⼀定⾮要⼤⼀个标准差,可以给定任意的置信区间,我们设定⼀定的显著性因⼦,就可以估算出误判次数的上下界。
>机械振动和机械波

本文发布于:2024-09-21 20:27:54,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/33092.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   决策树   训练   剪枝   结点   节点   拟合   业务
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议