正则化的缺点决策树(DecisionTree)的理解及优缺点
决策树的理解
决策树是⼀种机器学习的⽅法。决策树的⽣成算法有ID3, C4.5和CART等。决策树是⼀种树形结构,其中每个内部节点表⽰⼀个属性上的判断,每个分⽀代表⼀个判断结果的输出,最后每个叶节点代表⼀种分类结果。
决策树是⼀种⼗分常⽤的分类⽅法,需要监管学习(有教师的Supervised Learning),监管学习就是给出⼀堆样本,每个样本都有⼀组属性和⼀个分类结果,也就是分类结果已知,那么通过学习这些样本得到⼀个决策树,这个决策树能够对新的数据给出正确的分类。这⾥通过⼀个简单的例⼦来说明决策树的构成思路:
给出如下的⼀组数据,⼀共有⼗个样本(学⽣数量),每个样本有分数,出勤率,回答问题次数,作业提交率四个属性,最后判断这些学⽣是否是好学⽣。最后⼀列给出了⼈⼯分类结果。
然后⽤这⼀组附带分类结果的样本可以训练出多种多样的决策树,这⾥为了简化过程,我们假设决策树为⼆叉树,且类似于下图:
通过学习上表的数据,可以设置A,B,C,D,E的具体值,⽽A,B,C,D,E则称为阈值。当然也可以有和上图完全不同的树形,⽐如下图这种的:
所以决策树的⽣成主要分以下两步,这两步通常通过学习已经知道分类结果的样本来实现。
1. 节点的分裂:⼀般当⼀个节点所代表的属性⽆法给出判断时,则选择将这⼀节点分成2个
⼦节点(如不是⼆叉树的情况会分成n个⼦节点)
2. 阈值的确定:选择适当的阈值使得分类错误率最⼩(Training Error)。
⽐较常⽤的决策树有ID3,C4.5和CART(Classification And Regression Tree),CART的分类效果⼀般优于其他决策树。下⾯介绍具体步骤。
ID3:
由增熵(Entropy)原理来决定那个做⽗节点,那个节点需要分裂。对于⼀组数据,熵越⼩说明分类结果越好。熵定义如下:
Entropy=- sum [p(x_i) * log2(P(x_i) ]
其中p(x_i) 为x_i出现的概率。假如是2分类问题,当A类和B类各占50%的时候,
Entropy = - (0.5*log_2( 0.5)+0.5*log_2( 0.5))= 1
当只有A类,或只有B类的时候,
Entropy= - (1*log_2( 1)+0)=0
所以当Entropy最⼤为1的时候,是分类效果最差的状态,当它最⼩为0的时候,是完全分类的状态。因为熵等于零是理想状态,⼀般实际情况下,熵介于0和1之间。
熵的不断最⼩化,实际上就是提⾼分类正确率的过程。
⽐如上表中的4个属性:单⼀地通过以下语句分类:
1. 分数⼩于70为【不是好学⽣】:分错1个
2. 出勤率⼤于70为【好学⽣】:分错3个
3. 问题回答次数⼤于9为【好学⽣】:分错2个
4. 作业提交率⼤于80%为【好学⽣】:分错2个
最后发现分数⼩于70为【不是好学⽣】这条分错最少,也就是熵最⼩,所以应该选择这条为⽗节点进⾏树的⽣成,当然分数也可以选择⼤于71,⼤于72等等,出勤率也可以选择⼩于60,65等等,总之会有很多类似上述1~4的条件,最后选择分类错最少即熵最⼩的那个条件。⽽当分裂⽗节点时道理也⼀样,分裂有很多选择,针对每⼀个选择,与分裂前的分类错误率⽐较,留下那个提⾼最⼤的选择,即熵减最⼤的选择。
C4.5:
通过对ID3的学习,可以知道ID3存在⼀个问题,那就是越细⼩的分割分类错误率越⼩,所以ID3会越分越细,⽐如以第⼀个属性为例:设阈值⼩于70可将样本分为2组,但是分错了1个。如果设阈值⼩于70,再加上阈值等于95,那么分错率降到了0,但是这种分割显然只对训练数据有⽤,对于新的数据没有意义,这就是所说的过度学习(Overfitting)。
分割太细了,训练数据的分类可以达到0错误率,但是因为新的数据和训练数据不同,所以⾯对新的数据分错率反倒上升了。决策树是通过分析训练数据,得到数据的统计信息,⽽不是专为训练数据量⾝定做。
就⽐如给男⼈做⾐服,叫来10个⼈做参考,做出⼀件10个⼈都能穿的⾐服,然后叫来另外5个和前⾯10个⼈⾝⾼差不多的,这件⾐服也能穿。但是当你为10个⼈每⼈做⼀件正好合⾝的⾐服,那么这10件⾐服
除了那个量⾝定做的⼈,别⼈都穿不了。
所以为了避免分割太细,c4.5对ID3进⾏了改进,C4.5中,优化项要除以分割太细的代价,这个⽐值叫做信息增益率,显然分割太细分母增加,信息增益率会降低。除此之外,其他的原理和ID3相同。
CART:
分类回归树
CART是⼀个⼆叉树,也是回归树,同时也是分类树,CART的构成简单明了。
CART只能将⼀个⽗节点分为2个⼦节点。CART⽤GINI指数来决定如何分裂:
GINI指数:总体内包含的类别越杂乱,GINI指数就越⼤(跟熵的概念很相似)。
a. ⽐如出勤率⼤于70%这个条件将训练数据分成两组:⼤于70%⾥⾯有两类:【好学⽣】和【不是好学⽣】,⽽⼩于等于70%⾥也有两类:【好学⽣】和【不是好学⽣】。
b. 如果⽤分数⼩于70分来分:则⼩于70分只有【不是好学⽣】⼀类,⽽⼤于等于70分有【好学⽣】和【不是好学⽣】两类。
⽐较a和b,发现b的凌乱程度⽐a要⼩,即GINI指数b⽐a⼩,所以选择b的⽅案。以此为例,将所有条件列出来,选择GINI指数最⼩的⽅案,这个和熵的概念很类似。
CART还是⼀个回归树,回归解析⽤来决定分布是否终⽌。理想地说每⼀个叶节点⾥都只有⼀个类别时分类应该停⽌,但是很多数据并不容易完全划分,或者完全划分需要很多次分裂,必然造成很长的运⾏时间,所以CART可以对每个叶节点⾥的数据分析其均值⽅差,当⽅差⼩于⼀定值可以终⽌分裂,以换取计算成本的降低。
CART和ID3⼀样,存在偏向细⼩分割,即过度学习(过度拟合的问题),为了解决这⼀问题,对特别长的树进⾏剪枝处理,直接剪掉。
以上的决策树训练的时候,⼀般会采取Cross-Validation法:⽐如⼀共有10组数据:
第⼀次. 1到9做训练数据, 10做测试数据
第⼆次. 2到10做训练数据,1做测试数据
第三次. 1,3到10做训练数据,2做测试数据,以此类推
做10次,然后⼤平均错误率。这样称为 10 folds Cross-Validation。
⽐如 3 folds Cross-Validation 指的是数据分3份,2份做训练,1份做测试。
决策树的优缺点
优点
1. 决策树易于理解和解释,可以可视化分析,容易提取出规则;
2. 可以同时处理标称型和数值型数据;
3. ⽐较适合处理有缺失属性的样本;
4. 能够处理不相关的特征;
5. 测试数据集时,运⾏速度⽐较快;
6. 在相对短的时间内能够对⼤型数据源做出可⾏且效果良好的结果。
缺点
1. 容易发⽣过拟合(随机森林可以很⼤程度上减少过拟合);
2. 容易忽略数据集中属性的相互关联;
3. 对于那些各类别样本数量不⼀致的数据,在决策树中,进⾏属性划分时,不同的判定准则会带来不同的属性选择倾向;信息增益准则对可取数⽬较多的属性有所偏好(典型代表ID3算法),⽽增益率准则(CART)则对可取数⽬较少的属性有所偏好,但CART进⾏属性划分时候不再简单地直接利⽤增益率尽⼼划分,⽽是采⽤⼀种启发式规则)(只要是使⽤了信息增益,都有这个缺点,如RF)。
4. ID3算法计算信息增益时结果偏向数值⽐较多的特征。
改进措施
1. 对决策树进⾏剪枝。可以采⽤交叉验证法和加⼊正则化的⽅法;
2. 使⽤基于决策树的combination算法,如bagging算法,randomforest算法,可以解决过拟合的问题。
应⽤领域
企业管理实践,企业投资决策,由于决策树很好的分析能⼒,在⽤户分、⽤户流失等领域应⽤较多。
1 就决策树的这个算法⽽⾔,在⾮常多的⾏业都会有应⽤,是不是使⽤决策树进⾏挖掘分析个⼈认为还
是要看具体的应⽤分析⽬标,⼴义点说任何⼀个⾏业都可能出现适合决策树的应⽤分析⽬标,⽐如:在⽤决策树进⾏⽤户分级评估的时候,凡是积累了⼀定量的客户资源和数据,涉及对⾃⼰⾏业客户进⾏深⼊分析的企业和分析者都可能具备使⽤决策树的条件。
2 ⼀般来说决策树的应⽤⽤往往都是和某⼀应⽤分析⽬标和场景相关的,⽐如:⾦融⾏业可以⽤决策树做贷款风险评估,保险⾏业可以⽤决策树做险种推⼴预测,医疗⾏业可以⽤决策树⽣成辅助诊断处置模型等等,当⼀个决策树的应⽤分析⽬标和场景确定,那该应⽤分析⽬标和场景所处的⾏业也就⾃然成为了决策树的应⽤领域。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论