决策树—续

来源:互联网 发布:上门安装windows系统 编辑:程序博客网 时间:2024/05/29 15:34

前面我们简单的介绍了决策树的三种算法:ID3、C4.5和CRAT,下面我们继续讨论决策树的下述相关问题;

决策树的剪枝

连续与缺失值的处理

多变量决策树


一、决策树的剪枝

剪枝是决策树算法对付“过拟合”的主要手段;
决策树剪枝的基本策略分为预剪枝和后剪枝:
预剪枝:在决策树生成过程中,对每个节点在划分前后进行估计,若当前节点的划分不能带来决策树泛化性能的提升,则停止划分,并将当前节点标记为叶节点;
问题:有些分支的当前划分虽然不能提升泛化性能,但在此基础上进行的后续划分却可能导致性能的显著提升;预剪枝基于“贪心”本质禁止这些分支展开,给预剪枝决策树带来了欠拟合的风险。

后剪枝:先从训练集生成一棵完整的决策树,然后自底向上地对非叶节点进行考察,若将该节点对应的子树替换为叶节点能带来决策树泛化性能提升,则将该子树替换为叶节点。
问题:一般情形下,后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝决策树,但后剪枝过程是在生成完全决策树后进行的,并且是自底向上地对树中所有非叶节点进行逐一考察,因此其训练时间开销比未剪枝决策树和预剪枝决策树都要大很多。

注:泛化性能是否提升可用验证集来进行评估。

二、连续与缺失值

2.1 连续值处理


C4.5决策树算法采用了对连续属性离散化技术(采用二分法对连续属性进行处理);

给定数据集D和连续属性a,假设a在D上出现了n个不同的取值,将这些值从小到大排序后记为{}。基于划分点t可将D分为子集,其中包含那些在属性a上取值不大于t的样本,而则包含大于t的样本。显然,t在两个相邻的属性取值中取任意值所产生的划分结果相同,因此,对于连续属性a,我们可将两个相邻属性取值的中位点作为划分点(共n-1个),然后我们就可以像离散属性一样来考察这些划分,选取最优的划分点来进行样本集合的划分:

其中为对连续属性排序后相邻两个属性取值的中位数。

注:在父节点上使用了“密度<= 0.381”,不会禁止在子节点上使用“密度<=0.294”.

2.2 缺失值处理

问题1:如何在属性值缺失的情况下进行划分属性选择?
问题2:给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?

C4.5算法采用了以下解决方案:

给定训练数据集D和属性a,令表示D中在属性a上没有缺失值的样本子集,对于上述问题1,显然我们仅可根据来判断属性a的优劣。假定属性a有V个可取值{},令表示中在属性a上取值为的样本子集,表示中属于第K类(K = 1,2,。。。,|y|)的样本子集,则显然.

假定我们为每个样本x赋予一个权重,并定义;

         (缺失样本所占的比例)

                (无缺失值样本中第k类所占的比例)

               (无缺失值样本中属性a上取值的样本所占的比例)


基于上述定义,我们可以将信息增益的计算式推广为:

                                                       

                                                                              

其中


而对于问题2,

1、若样本x在划分属性a上的取值已知,则将x划入与其取值对于的子节点,且样本全权值在子节点中保持为

2、若样本x在划分属性a上的取值未知,则将x同时划入所有子节点,且样本权值在与属性值对应的子节点中调整为.,直观的看就是让同一个样本以不同的概率划入到不同的子节点中去。


三、多变量决策树

若我们把每个属性视为坐标空间中的一个坐标轴,则d个属性描述的样本就对应了d维空间中的一个数据点,对样本分类则意味着在这个坐标空间中寻找不同类样本之间的分类边界。决策树所形成发的分类边界有一个明显的特点:轴平行,即它的分类边界由若干个与坐标轴平行的分段组成。
如:



但是当出现如下图所示的情况,此时的决策树会相当复杂,由于要进行大量的属性测试,预测时间开销会很大。


这种情况若能使用斜的边界(如上图红线所示),则决策树会大为简化。

多变量决策树就是能实现这样的斜划分甚至是更复杂的决策树。
以实现斜划分的多变量决策树为例,在此类决策树中,非叶节点不再是仅对某个属性,而是对属性的线性组合进行测试;即每个非叶节点是一个形如
                                                
的线性分类器,其中是属性的权重;和t可在该节点所含的样本集和属性集上学得。
与传统的“单变量决策树”不同,在多变量决策树的学习过程中,不是为每个非叶节点寻找一个最优化分属性,而是试图建立一个合适的线性分类器。



四、阅读材料

C4.5Rule是一个将C4.5决策树转化为符号规则的算法,决策树的每个分支可以容易的重写为一条规则,但C4.5Rule算法在转化过程中会进行规则前件合并、删除等操作,因此最终规则集的泛化性能甚至可能优于原决策树。


决策树的划分除了信息增益、增益率、基尼指数外,人们还设计了许多其他的准则。然而实验表明,这些准则虽然对决策树的尺寸有较大影响,但是对泛化性能的影响很有限。

【Raileanu and Stoffel,2004】对信息增益和基尼指数及保险的理论分析显示,它们仅在2%的情况下会有所不同。


剪枝方法和程度对决策树泛化性能的影响相当显著,在数据带有噪音时通过剪枝甚至可将决策树的泛化性能提高25%。


多变量决策树算法主要有OC1【Murthy et al.,1994】和【Brodley and Utgoff,1995】提出的一系列算法。OC1先贪心的寻找每个属性的最优权值,在局部优化的基础上在对分类边界进行随机扰动以试图找到更好的边界。

【Brodley and Utgoff,1995】则直接引入了线性分类器的最小二乘法,还有一些算法试图在决策树的叶节点上嵌入神经网络,以结合这两种学习机制的有事==优势,如“感知机树”【Utgoff,1989b】在决策树的每个叶节点上训练一个感知机,而【Guo and Geland,1992】则直接在叶节点上嵌入多层神经网络。


一些决策树算法可进行“增量学习”,即在接收到新样本后可对已学得的模型进行调整,而不用重新学习。主要机制是通过调整分支路径上的划分属性次序来对树进行部分重构,代表性算法有ID4,ID5R,ITI等。增量学习可有效的降低每次接受到新样本后的训练时间开销,但多步增量学习后的模型会与基于全部数据训练而得到的模型有较大差别。

0 0
原创粉丝点击