决策树分类--ppt课件.ppt
火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去决策树分类决策树分类王成(副教授)王成(副教授)计算机科学与技术学院计算机科学与技术学院1ppt课件火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去主要内容主要内容什么是决策树ID3算法算法改进C4.5算法CART算法火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去Decision Tree ModelingDecision Tree Modeling决策树是一种简单且应用广泛的决策树是一种简单且应用广泛的决策树是一种简单且应用广泛的决策树是一种简单且应用广泛的预测预测预测预测方法方法方法方法火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去决策树决策树火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去图图3.1 3.1 常见的决策树形式常见的决策树形式决策树主要有二元分支(决策树主要有二元分支(binary splitbinary split)树和多分支()树和多分支(multiway splitmultiway split)树。)树。一般时候采用二元分裂,因为二元分裂在穷举搜索中更加灵活。一般时候采用二元分裂,因为二元分裂在穷举搜索中更加灵活。决策树形式决策树形式火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去决策树决策树决决策策树树(Decision Tree)又称为判判定定树树,是运用于分类的一种树树结结构构。其中的每个内内部部结结点点(internal node)代表对某个属性的一次测测试试,每条边边代表一个测测试试结结果果,叶叶结结点点(leaf)代表某个类类(class)或者类类的的分分布布(class class distributiondistribution),),最上面的结点是根结点根结点决决策策树树提供了一种展示在在什什么么条条件件下下会得到什什么么类类别别这类规则规则的方法。下例是为了解决这个问题而建立的一棵决决策策树树,从中可以看到决策树的基本组成部分:决策结点决策结点、分支分支和叶结点叶结点火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去决策树决策树下图给出了一个商商业业上上使使用用的的决决策策树树的例子。它表示了一个关关心心电电子子产产品品的的用用户户是是否否会会购购买买PC(buys_computer)的知识,用它可以预测某条记录(某个人)的购买意向预测某条记录(某个人)的购买意向火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去决策树决策树这棵决策树对销售记录进行分类,指出一个电子产品消费者是否会购买一台计算机“buys_computer”。每个内部结点(方形框)代表对某个属性的一次检测。每个叶结点(椭圆框)代表一个类:buys_computers=yes 或者 buys_computers=no在这个例子中,特征向量为:(age,student,credit_rating,buys_computers)被决策数据的格式为:(age,student,credit_rating)输入新的被决策的记录,可以预测该记录隶属于哪个类。火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去使用决策树进行分类使用决策树进行分类第1步:利用训练集建立并精化一棵决策树,建立决策树模型。这个过程实际上是一个从数据中获取知识,进行机器学习的过程第2步:利用生成完毕的决策树对输入数据进行分类。对输入的记录,从根结点依次测试记录的属性值,直到到达某个叶结点,从而找到该记录所在的类火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去主要内容主要内容什么是决策树ID3算法算法改进C4.5算法CART算法火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去如何从训练数据中学习决策树如何从训练数据中学习决策树?贷款申请数据集火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去如何从训练数据中学习决策树如何从训练数据中学习决策树?Age?youngmiddleoldNo:3Yes:2No:2Yes:3No:4Yes:1Own_house?truefalseNo:0Yes:6No:6Yes:3(a)(b)两种可能的根节点选取方式哪种更好?火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去ID3算法算法ID3算法主要针对属性选择问题使用信息增益度选择测试属性火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去ID3决策树建立算法决策树建立算法1 决定分类属性集合;决定分类属性集合;2 对目前的数据表,建立一个节点对目前的数据表,建立一个节点N3 如果数据库中的数据都属于同一个类,如果数据库中的数据都属于同一个类,N就是树叶,在树叶上就是树叶,在树叶上 标出所属的类标出所属的类(纯的类别纯的类别)4 如果数据表中没有其他属性可以考虑,则如果数据表中没有其他属性可以考虑,则N也是树叶,按照少也是树叶,按照少 数服从多数的原则在树叶上标出所属类别数服从多数的原则在树叶上标出所属类别(不纯的类别不纯的类别)5 否则,否则,根据平均信息期望值根据平均信息期望值E或或GAIN值选出一个最佳属性作值选出一个最佳属性作 为节点为节点N的测试属性的测试属性6 节点属性选定后,对于该属性中的每个值:节点属性选定后,对于该属性中的每个值:从从N生成一个分支,并将数据表中与该分支有关的数据收集形生成一个分支,并将数据表中与该分支有关的数据收集形 成分支节点的数据表,在表中删除节点属性那一栏成分支节点的数据表,在表中删除节点属性那一栏 7如果分支数据表属性非空,则转如果分支数据表属性非空,则转1,运用以上算法从该节点建立子树,运用以上算法从该节点建立子树火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去信息熵信息熵(Entropy)我们常说信息很多,或信息很少,但却很难说清楚信息到底有多少比如一本50多万字的史记有多少信息量?或一套莎士比亚全集有多少信息量?这个问题几千年来都没有人给出很好的解答,直到1948年,香农(Claude Shannon)在他著名的论文“通信的数学原理”中提出了信信息息熵熵的概念,才解决了信信息息的的度度量量问问题题,并且量化出信息的作用量化出信息的作用火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去信息熵信息熵(Entropy)一条信息的信息量和它的不确定性有着直接的关系比如,要搞清楚一件非常不确定的事,或是我们一无所知的事情,就需要了解大量信息。相反,如果我们对某件事已经有了较多了解,那么不需要太多信息就能把它搞清楚从这个角度看,信息量就等于不确定性的多少如何量化信息的度量呢?火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去信息熵信息熵(Entropy)假如我错过了一个有32支球队参加的足球赛,赛后我问一个知道比赛结果的观众“哪支球队是冠军”?他不愿意直接告诉我,而让我猜,每猜一次,他要收一元钱才肯告诉我是否猜对,那我需要付多少钱才能知道谁是冠军呢?我可以把球队编号,从1到32,然后问“冠军球队在1-16号中吗?”,假如他告诉我猜对了,我就接着问“冠军在1-8号中吗?”,假如他说猜错了,那我就知道冠军在9-16号中。这样只要5次,我就能知道哪支球队是冠军当然,香农不是用钱,而是用比特(bit)来度量信息量,在上例中,这条消息的信息量是5比特信息量的比特数和所有可能情况的对数有关,例如本例中,信息量=log(球队数),即 5=log(32)火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去信息熵信息熵(Entropy)实际上可能不需要5次就能猜出谁是冠军,因为一些强队得冠的可能性更高,因此第一次猜测时可以把少数几支强队分成一组,其它球队分成另一组,然后猜冠军球队是否在那几支强队中这样,也许三次或四次就能猜出结果。因此,当每支球队夺冠的可能性(概率)不等时,这条信息的信息量比5比特少香农指出,它的准确信息量应该是p1,p2,.,p32分别是这32支球队夺冠概率,香农把它称作信息熵,单位为比特信息熵,单位为比特;可以算出,当32支球队夺冠概率相同时,对应的信息熵为5比特。火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去信息熵信息熵(Entropy)对于任意一个随机变量X(比如夺冠球队),它的熵定义为变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去数据集的信息熵数据集的信息熵设数据集D中有m个不同的类C1,C2,C3,.,Cm设 Ci,D是数据集D中Ci类的样本的集合,|D|和|Ci,D|分别是D和 Ci,D中的样本个数其中pi是数据集D中任意样本属于类Ci的概率,用 估计数据集D的信息熵:火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去例例:计算对下列数据集分类所需的信息熵计算对下列数据集分类所需的信息熵|D|=14|C1,D|=5|C2,D|=9火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去使用熵衡量数据纯度使用熵衡量数据纯度假设有一个数据集合假设有一个数据集合D,其中只有两个类,一个是正例类,一个是负例类,其中只有两个类,一个是正例类,一个是负例类计算计算D中正例类和负例类在三种不同的组分下熵的变化情况。中正例类和负例类在三种不同的组分下熵的变化情况。(1)D中包含有中包含有50%的正例和的正例和50%的负例。的负例。H(D)=-0.5*log20.5-0.5*log20.5=1(2)D中包含有中包含有20%的正例和的正例和80%的负例。的负例。H(D)=-0.2*log20.2-0.8*log20.8=0.722(3)D中包含有中包含有100%的正例和的正例和0%的负例。的负例。H(D)=-1*log21-0*log20=0可以看到一个趋势,可以看到一个趋势,当数据变得越来越当数据变得越来越“纯纯”时,熵的值变得越来越小时,熵的值变得越来越小。当当D中中正反例所占比例相同时,熵取最大值正反例所占比例相同时,熵取最大值。当当D 中中所有数据都只属于一个类时,熵得到最小值所有数据都只属于一个类时,熵得到最小值。因此因此熵可以作为数据纯净度或混乱度的衡量指标熵可以作为数据纯净度或混乱度的衡量指标。这正是决策树学习中。这正是决策树学习中需要的。需要的。火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去数据集的信息熵数据集的信息熵假设按属性 A 划分 D 中的样本,且属性 A 根据训练数据的观测具有 v 个不同取值 a1,a2,.,aj,.,av。如果 A 是离散值离散值,可依属性 A 将 D 划分为 v 个子集 D1,D2,.,Dj,.,Dv 其中,Dj为D中的样本子集,它们在A上具有属性值aj 这些划分将对应于从该节点A出来的分支。按属性A对D划分后,数据集的信息熵:其中,充当第 j 个划分的权重。InfoA(D)越小,表示划分的纯度越高火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去信息增益信息增益选择具有最高信息增益Gain(A)的属性A作为分裂属性按照能做“最佳分类”的属性A划分,使完成样本分类需要的信息量最小火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去确定第一次分裂的属性:按确定第一次分裂的属性:按年龄年龄划分划分年龄40的有5个,其中2个为“否”Info年龄(D)Gain(年龄)=Info(D)-Info年龄(D)=0.940-0.694=0.246火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去确定第一次分裂的属性:按收入划分确定第一次分裂的属性:按收入划分收入=高的有4个,其中2个为“否”收入=中的有6个,其中2个为“否”收入=低的有4个,其中1个为“否”Info收入(D)Gain(收入)=Info(D)-Info收入(D)=0.940-0.911=0.029火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去确定第一次分裂的属性:按学生划分确定第一次分裂的属性:按学生划分是学生的有7个,其中1个为“否”不是学生的有7个,其中4个为“否”Info学生(D)Gain(学生)=Info(D)-Info学生(D)=0.940-0.788=0.152火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去确定第一次分裂的属性:按信用划分确定第一次分裂的属性:按信用划分信用好的有6个,其中3个为“否”信用一般的有8个,其中2个为“否”Info信用(D)Gain(信用)=Info(D)-Info信用(D)=0.940-0.892=0.048火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去确定第一次分裂的属性确定第一次分裂的属性年龄40“年龄”属性具体最高信息增益,成为分裂属性火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去 Info收入(D)=2/5*(-2/2*log2/2-0/2*log0/2)+2/5*(-1/2*log1/2-1/2*log1/2)+1/5*(-1/1*log1/1-0/1*log0/1)=0.400 Info学生(D)=3/5*(-3/3*log3/3-0/3*log0/3)+2/5*(-2/2*log2/2-0/2*log0/2)=0 Info信用(D)=3/5*(-2/3*log2/3-1/3*log1/3)+2/5*(-1/2*log1/2-1/2*log1/2)=0.951“学生”属性具体最高信息增益,成为分裂属性确定第二次分裂的属性确定第二次分裂的属性火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去年龄40学生不买买不是学生是学生.买火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去ID3决策树建立算法决策树建立算法1 决定分类属性;决定分类属性;2 对目前的数据表,建立一个节点对目前的数据表,建立一个节点N3 如果数据库中的数据都属于同一个类,如果数据库中的数据都属于同一个类,N就是树叶,在树叶上就是树叶,在树叶上 标出所属的类标出所属的类4 如果数据表中没有其他属性可以考虑,则如果数据表中没有其他属性可以考虑,则N也是树叶,按照少也是树叶,按照少 数服从多数的原则在树叶上标出所属类别数服从多数的原则在树叶上标出所属类别5 否则,否则,根据平均信息期望值根据平均信息期望值E或或GAIN值选出一个最佳属性作值选出一个最佳属性作 为节点为节点N的测试属性的测试属性6 节点属性选定后,对于该属性中的每个值:节点属性选定后,对于该属性中的每个值:从从N生成一个分支,并将数据表中与该分支有关的数据收集形生成一个分支,并将数据表中与该分支有关的数据收集形 成分支节点的数据表,在表中删除节点属性那一栏成分支节点的数据表,在表中删除节点属性那一栏7如果分支数据表属性非空,则转如果分支数据表属性非空,则转1,运用以上算法从该节点建立子树,运用以上算法从该节点建立子树火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去它它首首先先对对数数据据进进行行处处理理,利利用用归归纳纳法法生生成成可可读读的的规规则则和和决决策策树树,然然后后使使用用决决策策对对新新数数据据进进行行分分析析。本本质质上上决决策策树树是是通通过过一一系系列列规规则则对对数数据据进进行行分分类类的的过过程程。决决策策树树技技术术发发现现数据模式和规则的核心是采用数据模式和规则的核心是采用递归分割的贪婪算法递归分割的贪婪算法。决策树的基本原理决策树的基本原理 火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去分类决策树分类决策树A decision tree is so called because the predictive model can be represented in a tree-like structure.the target is categorical,the model is a called a classification tree.火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去分类树采用的标准:分类树采用的标准:分类错误率分类错误率:Gini 指数指数:信息熵信息熵:火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去主要内容主要内容什么是决策树ID3算法算法改进C4.5算法CART算法火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去C4.5算法对算法对ID3的改进的改进改进1:用信息增益率信息增益率代替信息增益信息增益来选择属性属性改进2:能够完成对连续值属性连续值属性的离散化处理离散化处理改进3:能处理属性值缺失属性值缺失的情况改进4:在决策树构造完成之后进行剪枝剪枝火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去十大数据挖掘算法十大数据挖掘算法C4.5k-MeansSVMAprioriEMPageRankAdaBoostkNNNave BayesCART火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进1:信息增益的问题:信息增益的问题假设按属性 A 划分 D 中的样本,且属性 A 根据训练数据的观测具有 v 个不同取值 a1,a2,.,aj,.,av。如果 A 是离散值离散值,可依属性 A 将 D 划分为 v 个子集 D1,D2,.,Dj,.,Dv 其中,Dj为D中的样本子集,它们在A上具有属性值aj 这些划分将对应于从该节点A出来的分支。信息增益度量信息增益度量偏向于对取值较多取值较多的属性属性进行测试,即它倾向于选择v较大较大的属性属性A举个极端的例子:考虑充当唯一标识的属性PID。对PID的分裂将产生大量划分(与样本个数一样多),每个分类只包含一个样本,且每个划分都是纯的。对属性PID划分得到的信息增信息增益最大益最大,显然,这种划分对分划分对分类没有用处类没有用处。火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进1:信息增益率:信息增益率C4.5使用分裂信息分裂信息(split information)将信息增益规范化信息增益规范化该值表示数据集D按属性A分裂的v个划分产生的信息选择具有最大信息增益率最大信息增益率的属性作为分裂属性分裂属性火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进1:信息增益率:信息增益率Info(D)=0.940Info收入(D)=0.911Gain(收入)=0.029高收入的有4个中等收入的有6个低收入的有4个SplitInfo收入(D)=-4/14*log4/14 -6/14*log6/14 -4/14*log4/14=1.557 GainRatio(收入)=Gain(收入)/SplitInfo收入(D)=0.029/1.557=0.019火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进2:连续值属性与分裂点:连续值属性与分裂点对于连续值属性连续值属性,按属性值大小从小到大排序,取每对相邻值的中点相邻值的中点作为可能的可能的分裂点分裂点split_point。假设一连续值属性共有N个不同的属性值,则可找到N-1个可能的分裂点分裂点。检查每个可能分裂点,取能使得信息增益最大的分裂点信息增益最大的分裂点,将D分裂成D1:A split_point(一个分裂点,二分法,二叉树一个分裂点,二分法,二叉树)56105.588C4.5不使用中点,而是直接使用一对值中较小的值作为可能的分裂点,如本例中将使用5,6作为可能分裂点多个分裂点?多分法,多叉决策树多个分裂点?多分法,多叉决策树火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进3:缺失值的处理:缺失值的处理在某些情况下,可供使用的数据可能缺少某些属性的值,例如一种简单的办法是赋予它该属性最常见的值,例如将“晴”或“雨”赋予第6个实例的天气属性一种更复杂的策略是为一种更复杂的策略是为A的每的每个可能值赋予一个概率个可能值赋予一个概率火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进3:缺失值的处理:缺失值的处理建树过程(学习过程)选定训练样本实例有缺失值,如何知道要将其分配到哪个分支?分类过程(测试过程或者工作过程)待分类实例有缺失值,如何测试该实例属于哪个分支?天气晴多云雨(天气天气=缺失缺失,温度=72,湿度=90.)火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进3:C4.5中缺失值的处理中缺失值的处理-建树过程(学习过程)建树过程(学习过程)Gain(A)=F(Info(D)InfoA(D)其中 F 为属性值未缺失的实例所占比例;计算 Info(D)和 InfoA(D)时忽略属性值缺失的实例 Info(D)=-8/13log(8/13)-5/13log(5/13)=0.961 bits Info天气(D)=5/13(-2/5log(2/5)-3/5log(3/5)+3/13(-3/3log(3/3)-0/3log(0/3)+5/13(-3/5log(3/5)-2/5log(2/5)=0.747 bits Gain(天气)=13/14 (0.961-0.747)=0.199 bits火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进3:C4.5中缺失值的处理中缺失值的处理-建树过程(学习过程)建树过程(学习过程)计算 SplitInfo 时,将缺失的属性值当作一个正常值进行计算,本例中,当作天气有四个值,分别是晴,多云,雨,?,再计算其 SplitInfoSplitInfo天气(D)=-5/14log(5/14)-3/14log(3/14)-5/14log(5/14)-1/14log(1/14)=1.809 bits晴多云雨缺失缺失 GainRatio(天气)=Gain(天气)/SplitInfo天气(D)=0.199/1.809火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进3:C4.5中缺失值的处理中缺失值的处理-建树过程(学习过程)建树过程(学习过程)分裂时,将属性值缺失的实例分配给所有分支,但是带一个权重T1:(天气=晴)T1:(天气=多云)T1:(天气=雨)本例14个实例中共13个实例天气属性值未缺失:其中5个实例的天气属性为“晴”,3个实例的天气属性为“多云”,5个实例的天气属性为“雨”本例14个实例中共1个实例天气属性值缺失,因此估算出天气属性值缺失的第6个实例:天气是晴的概率是5/13,天气是多云的概率是3/13,天气是雨的概率是5/13火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进3:C4.5中缺失值的处理中缺失值的处理-建树过程(学习过程)建树过程(学习过程)T1:(天气=晴)湿度 75 5/13玩,3不玩湿度玩(2.0)不玩(3.4/0.4)75叶节点以(N/E)的形式定义,其中 N 为到达该叶节点的实例数,E 为其中属于其它分类的实例数。例如,不玩不玩(3.4/0.4)表示3.4个实例到达“不玩”节点,其中0.4个实例不属于“不玩”火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进3:C4.5中缺失值的处理中缺失值的处理-分类过程分类过程湿度玩(2.0)不玩(3.4/0.4)75天气晴(天气=晴,温度=90,湿度湿度=缺失缺失.)对于任一实例,湿度 75 的可能性是 3.4/(2.0+3.4)当湿度 75 时,分类为玩的可能性=0.4/3.4=12%分类为不玩的可能性=3/3.4=88%最终分类的概率分布为:玩=2.0/5.4100%+3.4/5.412%=44%不玩=3.4/5.488%=56%火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进4:学习过程中的过度拟合:学习过程中的过度拟合上述的决策树算法增长树的每一个分支的深度,直到恰好能对训练样例比较完美地分类。实际应用中,当训练样本中有噪声或训练样例的数量太少以至于不能产生目标函数的有代表性的采样时,该策略可能会遇到困难在以上情况发生时,这个简单的算法产生的树会过过度度拟拟合合训练样例训练样例(过度拟合:Over fitting)过度拟合产生的原因:训练样本中有噪声,训练样例太小等火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进4:欠拟合、合适拟合、过拟合:欠拟合、合适拟合、过拟合欠拟合合适拟合过拟合火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进4:过度拟合:过度拟合训练样本中噪声导致的过度拟合错误的类别值/类标签,属性值等训练样本中缺乏代表性样本所导致的过度拟合根据少量训练记录作出的分类决策模型容易受过度拟合的影响。由于训练样本缺乏代表性的样本,在没有多少训练记录的情况下,学习算法仍然继续细化模型就会导致过度拟合火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进4:缺乏代表性样本所导致的过度拟合缺乏代表性样本所导致的过度拟合哺乳动物分类的训练样例体温体温恒温恒温冷血冷血冬眠冬眠NY N N4条腿条腿Y N NY按照训练模型。人和大象都不是按照训练模型。人和大象都不是哺乳动物。决策树作出这样的判哺乳动物。决策树作出这样的判断是因为只有一个训练样例具有断是因为只有一个训练样例具有这些特点(鹰,恒温,不冬眠)这些特点(鹰,恒温,不冬眠)被划分为非哺乳动物。被划分为非哺乳动物。该例清楚表明,当决策树的叶节该例清楚表明,当决策树的叶节点没有足够的代表性时,可能会点没有足够的代表性时,可能会预测错误。预测错误。哺乳动物分类的测试样例火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进4:决策树剪枝:决策树剪枝How?预剪枝(prepruning)后剪枝(postpruning)在完全正确分类训练集之前就停止树的生长。由“完全生长”的树剪去子树。火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进4:预剪枝:预剪枝yesyesno 剪枝处理yesno45311no否否否否是是是是最直接的方法:事先限定树的最大生长高度如果设为3,则如图剪枝火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进4:后剪枝:后剪枝训练过程训练过程中允许对数据中允许对数据的过度拟合,然后再利的过度拟合,然后再利用用测试集测试集对树进行修剪对树进行修剪树叶用被替换的子树最频繁的类标号yesyesnoyesno41311no2yes/no2NO是是是是是是否否否否否否火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去改进改进4:后剪枝:后剪枝在测试集上在测试集上定义损失函数C,我们的目标是通过剪枝使得在测试在测试集上集上C的值下降。例如通过剪枝使在测试集上在测试集上误差率降低。1.自底向上的遍历每一个非叶节点(除了根节点),将当前的非叶节点从树中减去,其下所有的叶节点合并成一个节点,代替原来被剪掉的节点。2.计算剪去节点前后的损失函数,如果剪去节点之后损失函数变小了,则说明该节点是可以剪去的,并将其剪去;如果发现损失函数并没有减少,说明该节点不可剪去,则将树还原成未剪去之前的状态。3.重复上述过程,直到所有的非叶节点(除了根节点)都被尝试了。火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去从决策树导出产生式规则从决策树导出产生式规则大型决策树可读性较低,可通过从决策树导出产生式规则以提高可读性把从根结点到叶子结点的路径中遇到的所有测试条件联合起来,便可建立相对应的规则集火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去从决策树导出产生式规则从决策树导出产生式规则但这样的规则会导致某些不必要的复杂性可用类似的方法对规则集进行剪枝对于某一规则,将它的单个条件暂时去除,在在测测试试集集上上估计误差率,并与原规则的误差率进行比较,若新规则的结果较好,则删除这个条件IF 天气=晴 AND 湿度=75THEN 玩IF 天气=晴THEN 玩火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去主要内容主要内容什么是决策树ID3算法算法改进C4.5算法CART算法火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去CART算法算法分分 类类 回回 归归 树树(CART:Classification CART:Classification and and Regression Regression TreeTree)其其特特点点是是在在计计算算过过程程中中充充分分利利用用二二分分支支树树的的结结构构(Bianry Bianry Tree-structuredTree-structured),即即根根节节点点包包含含所所有有样样本本,在在一一定定的的分分裂裂规规则则下下根根节节点点被被分分裂裂为为两两个个子子节节点点,这这个个过过程程又又在在子子节节点上重复进行,直至不可再分,成为叶节点为止。点上重复进行,直至不可再分,成为叶节点为止。火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去回归树(回归树(Regression Tree)因变量因变量-continuous,叶子为叶子为因变量因变量的预测值。的预测值。Boston Housing Data火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去Leaves=Boolean Rules(布尔规则)(布尔规则)Leaf12345678RM6.56.56.56.5,6.9)6.96.9,7.4)7.46.9NOX.51.51,.63).63,.67).67.67.66.66.66Predicted MEDV2219272714334616If RM values&NOX values,then MEDV=value火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去CART算法算法CART:Classification And Regression Trees可用于分类和回归(数值预测)使用GINI指标来选择分裂属性使用二元切分(将生成二叉树)基于代价-复杂度剪枝火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去Gini指标指标 指标用来度量数据划分或者数据集的不纯度。其中,是 中样本属于 类的概率,并用 估计。电脑销售数据集中,9个样本属于“购买电脑”,5个样本属于“未购买电脑”火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去Gini指标指标如果按照 的二元分裂,将 划分成 和 ,则给定该划分的 指标为:Gini指标最小,划分越纯。选择具有最小Gini指标(或最大Gini)的属性作为分裂属性火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去处理离散值属性处理离散值属性以收入为例,对收入属性的所有可能子集:低,中,高,低,中,低,高,中,高,低,中,高考虑所有可能的二元划分,并计算划分前后的Gini指标,选择能产生最小Gini指标的子集作为分裂子集收入中,高.是否火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去回归树的生成回归树的生成 数据:N个观测,p个自变量,1个因变量(连续型)目标:自动地选择分裂变量及其分裂点假设有一个分裂把自变量空间分成M个区域:在每个区域,我们用一个常数来拟合因变量:优化目标:误差平方和最小 上最优的拟合解为 火灾袭来时要迅速疏散逃生,不可蜂拥而出或留恋财物,要当机立断,披上浸湿的衣服或裹上湿毛毯、湿被褥勇敢地冲出去从从根根节节点点开开始始,考考虑虑一一个个分分裂裂变变量量j j和和分分裂裂点点s s,得得到到2 2个个区域:区域:最优的变量最优的变量j j和分裂点和分裂点s s,要满足,要满足对于给定的对于给定的j j和和s s,最里层的优化问题的解为,最里层的优化问题的解为而对于给定的而对于给定的j j,分裂点分裂点s s很快能找到很快能找到.这样,遍历所有的自变量,就能找到最佳的一对这样,遍历所有的自变量,就能找到最佳的一对j j和和s s.递归分割