第七章决策树

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第七章决策树和决策规则本章目标分析解决分类问题的基于逻辑的方法的特性.描述决策树和决策规则在最终分类模型中的表述之间的区别.介绍C4.5算法.了解采用修剪方法降低决策树和决策规则的复杂度.决策树和决策规则是解决实际应用中分类问题的数据挖掘方法。一般来说,分类是把数据项映射到其中一个事先定义的类中的这样一个学习函数的过程。由一组输入的属性值向量(也叫属性向量)和相应的类,用基于归纳学习算法得出分类。学习的目标是构建一个分类模型,通常也叫分类器。它可以根据有效的属性输入值预测一些实体(所给样本)的类。是一个在样本其他属性已知的情况下预测另外一个属性(样本的类)的模型(分类的结果)。7.1决策树从数据中生成分类器的一个特别有效的方法是生成一个决策树。它是一种基于逻辑的方法,通过一组输入-输出样本构建决策树的有指导学习方法。决策树包含属性已被检验的节点,一个节点的输出分枝和该节点的所有可能的检验结果相对应。图7-2是一个简单的决策树。该问题有两个属性X,Y。所有属性值X1和YB的样本属于类2。不论属性Y的值是多少,值X1的样本都属于类1。对于树中的非叶节点,可以沿着分枝继续分区样本,每一个节点得到它相应的样本子集。生成决策树的一个著名的算法是Quinlan的ID3算法,C4.5是它改进版。ID3算法的基本思路:1.从树的根节点处的所有训练样本开始,选取一个属性来划分这些样本。对属性的每一个值产生一分枝。分枝属性值的相应样本子集被移到新生成的子节点上。2.这个算法递归地应用于每个子节点,直到一个节点上的所有样本都分区到某个类中。3.到达决策树的叶节点的每条路径表示一个分类规则。该算法的关键性决策是对节点属性值的选择。ID3和C4.5算法的属性选择的基础是基于使节点所含的信息熵最小化。基于信息论的方法坚持对数据库中一个样本进行分类时所做检验的数量最小。ID3的属性选择是根据一个假设,即:决策树的复杂度和所给属性值表达的信息量是密切相关的。基于信息的试探法选择的是可以给出最高信息的属性,即这个属性是使样本分类的结果子树所需的信息最小。7.2C4.5算法:生成一个决策树C4.5算法最重要的部分是由一组训练样本生成一个初始决策树的过程。决策树可以用来对一个新样本进行分类,这种分类从该树的根节点开始,然后移动样本直至达叶节点。在每个非叶决策点处,确定该节点的属性检验结果,把注意力转移到所选择子树的根节点上。例如,如图7-3a为决策树分类模型,待分类有样本如图7-3b所示,由决策树分类模型可得出待分类样本为类2。(节点A,C,F(叶节点))C4.5算法的构架是基于亨特的CLS方法,其通过一组训练样本T构造一个决策树。用{C1,C2,…,CK}来表示这些类,集合T所含的内容信息有3种可能性:1.T包含一个或更多的样本,全部属于单个的类Cj。那么T的决策树是由类Cj标识的一个叶节点。2.T不包含样本。决策树也是一个叶,但和该叶关联的类由不同于T的信息决定,如T中的绝大多数类。3.T包含属于不同类的样本。这种情况下,是把T精化成朝向一个单类样本集的样本子集。根据某一属性,选择具有一个或更多互斥的输出{O1,O2,…,On}的合适检验。T被分区成子集T1,T2,…,Tn。T的决策树包含标识检验的一个决策点和每个可能输出的一个分枝(如图7-3a中的A,B和C节点)假设选择有n个输出(所给属性的n个值)的检验,把训练样本集T分区成子集T1,T2,…,Tn。仅有的指导信息是在T和它的子集Ti中的类分布。如果S是任意样本集,设freq(Ci,S)代表S中属于Ci的样本数量,|S|表示集合S中的样本数量。ID3算法的属性选择的检验方法采用增益标准,它基于信息论中熵的概念。集合S的期望信息(熵)如下:T被分区之后的一个相似度标准,T按照一个属性检验X的几个输出进行分区。所需信息为子集的熵的加权和:))()/()(1iniixTinfoTTTinfo))/),((log)/),((()(21SSCfregSSCfregSinfoikii分区所对应的信息增益:上式度量了按照检验X进行分区的T所得到的信息。该增益标准选择了使Gain(X)最大化的检验X,即此标准选择的具有最高增益的那个属性。例如:给定训练样本如表7-1,14个样本,3个属性,分为两个类。)()()(TinfoTinfoXGainx9个样本属于类1,5个属于类2,因此分区前的熵为(基于类的熵计算)info(T)=-9/14log2(9/14)-5/14log2(5/14)=0.940按属性1分区可得子集的熵的加权和:infox1(T)=5/14(-2/5log2(2/5)-3/5log2(3/5))+4/14(-4/4log2(4/4)-0/4log2(0/4))+5/14(-3/5log2(3/5)-2/5log2(2/5))=0.694相应的增益:Gain(x1)=0.94-0.694=0.246按属性3分区可得子集的熵的加权和:infox2(T)=6/14(-3/6log2(3/6)-3/6log2(3/6))+8/14(-6/8log2(6/8)-2/8log2(2/8))=0.892相应的增益:Gain(x2)=0.94-0.892=0.048由于属性2是数值型的连续数据,不能简单按上面方式计算。下面先介绍一下C4.5算法中一般包含3种类型的检验结构:1.离散值的“标准”检验,对属性的每个可能值有一个分枝和输出。2.如果属性Y有连续的数值,通过将该值和阈值Z比较,用输出Y≤Z和Y>Z定义二元检验。3.基于离散值的更复杂的检验,该检验中属性的每个可能值被分配到许多易变的组中,每组都有一个输出和分枝。数值型属性检验:对于属性Y,按训练样本进行分类,分类顺序用{v1,v2,…,vm}表示,因此对Y仅有m-1个分区,要系统在检查所有分区以求得最优分区。通常选择区间的中点为阈值。而C4.5算法选择{vi,vi+1}的最小值vi为阈值。这确保出现结果中阈值属于数据库的一个值。对于上例,属性2的值的集合是:{65,70,75,78,80,85,90,95,96}可能的阈值Z的集合是:{65,70,75,78,80,85,90,95}。从这8个值里选择最优的阈值(最高信息增益),最优的Z=80。(如果计算?)对应属性2的检验3(属性2≤80和属性2>80)的信息增益计算:infox3(T)=9/14(-7/9log2(7/9)-2/9log2(2/9))+5/14(-2/5log2(2/5)-3/5log2(3/5))=0.837相应的增益:Gain(x3)=0.94-0.837=0.103属性1的增益最高,选择该属性进行首次分区。每个属性值具有一个分枝,产生3个分枝,如图7-4所示.对每个分枝重复上述步骤选择检验和最优化过程。对于子节点T2子集,4个样本都是类1,该节点是叶节点。对于余下的节点,在T1中有5个样本,最优检验有两个选择:属性2≤70和属性2>70的检验x4。info(T1)=-2/5log2(2/5)-3/5log2(3/5)=0.940infox4(T1)=2/5(-2/2log2(2/2)-0/2log2(0/2))+3/5(-0/3log2(0/3)-3/3log2(3/3))=0Gain(x3)=0.94-0=0.94产生两个分枝为最终叶节点,分枝中的数据子集属于同一类。对根节点下的T3子集进行同样的计算,按属性3=真和属性3=假检验,产生两个叶节点。图7-5表示数据库T的最终决策树。另外,决策树可以用可执行代码(或伪代码)的形式表示。图7-6用伪代码给出了上面例子的决策树。增益标准对具有许多输出的检验有严重的偏差,根据info(S)的定义,指定一个附加的参数:这表示通过把集T分区成n个子集Ti而生成的潜在信息。现在,定义一个新的增益标准:Gain-radio(X)=gain(X)/Split-info(X)))/(log)/(()(21TTTTXinfoSplitinii7.3未知属性值C4.5算法的前一版本是基于所有属性值都已确定这一假设。但是在一个数据库,经常会缺少某些样本的一些属性。由于该属性值与某个样本是不相关的,或搜集样本时没有对它进行记录,或在数据录入时有人为的误差,就可能出现属性值丢失的情况。解决丢失值问题的两种方法:1.抛弃数据库中有丢失数据的样本。2.定义一个新的算法或改进现有算法来处理丢失的数据。第一种解决方案很简单,但当样本集中存在大量丢失值时不能采用这种方法。在C4.5算法中,有未知值的样本是按照已知值的相对频率随机分布的,这是普遍使用的法则。除了考虑到仅有的几个有已知属性值的样本,Info(T)和Infox(T)的计算和前面机相同。然后可以用系数F合理地修正增益参数,该系数表示所给属性已知的概率。F=数据库中一个给出的属性值具有已知值的样本的数量/数据集中样本数量总和。新的增益标准有以下形式:Gain(x)=F·(Info(T)-Infox(T))同样,通过把具有未知值的样本看作分区的一个附加组可以修改Split-info(x)。如果检验x有n个输出,Split-info(x)按照检验把数据集分区成n+1个子集计算。例如:一个改进了的C4.5决策树的方法。数据集见表7-2。该例有14个样本,属性1有一个丢失值,用“?”表示。只有13个样本数据完整。分区前的熵是:Info(T)=-8/13log2(8/13)-5/13log2(5/13)=0.961属性1检验的信息:infox1(T)=5/13(-2/5log2(2/5)-3/5log2(3/5))+3/13(-3/3log2(3/3)-0/3log2(0/3))+5/13(-3/5log2(3/5)-2/5log2(2/5))=0.747该检验所获得的信息系数F(F=13/14)修正:Gain(x1)=13/14(0.961-0.747)=0.199该值比上个例子的值0.216小。然后,该分区信息仍是根据整个训练集来确定的,而且更大,因为对未知值有一个额外的类别。Split-info(xi)=-(5/14log(5/14)+3/14log(3/14)+5/14log(5/14)+1/14log(1/14))=1.876另外,每个样本都有一个相关的新参数,即概率。显然,当一个值已知的样本从T分配给Ti时,它属于Ti的概率是1,属于其他所有子集的概率是0。当一值是未知时,只能得出不稳定的概率描述。因此C4.5和每个子集Ti中的每个样本是用权重w联系起来的,它表示属于每个子集的样本概率。为了使该解决方法更具一般性,必须认为分区前样本的概率并不总是等于1。因此,分区后丢失值的新参数wnew为:wnew=wold·P(Ti)对于属性1的检验x1分区结果,丢失值的记录将被表示在3个子集中。如图7-7所示。因为最初的(旧的)w值等于1,新的权值wi等于概率5/13,3/13,和5/13。在C4.5中,Ti的算式如下:|T1|=5+5/13,|T2|=3+3/13,|T3|=5+5/13对属性2和属性3检验分区,最终决策树如图7-8中所示的形式。上图与图7-6结构相同,但是因为最终分类的不明确性,每个决策都以形式(|Ti|/E)和两个参数关联。|Ti|是到叶节点的部分样本和,E是属于除了指定类以外的类的样本的数量。2.4/0.4例如,(3.4/0.4)的意思是:3.4(3+5/13)个训练样本到达叶节点,其中0.4(5/13)并不属于分配给叶的类。可以用百分数表示参数|Ti|和E:3/3.4·100%=所给叶的88%的样本将被分给类20.4/3.4·100%=所给叶的12%的样本将被分给类1

1 / 36
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功