决策树分类ppt课件.ppt
《决策树分类ppt课件.ppt》由会员分享,可在线阅读,更多相关《决策树分类ppt课件.ppt(96页珍藏版)》请在三一办公上搜索。
1、t课件,1,决策树分类,王成(副教授)计算机科学与技术学院,主要内容,什么是决策树ID3算法算法改进C4.5算法CART算法,Decision Tree Modeling决策树是一种简单且应用广泛的预测方法,决策树,图3.1 常见的决策树形式,决策树主要有二元分支(binary split)树和多分支(multiway split)树。一般时候采用二元分裂,因为二元分裂在穷举搜索中更加灵活。,决策树形式,决策树,决策树(Decision Tree)又称为判定树,是运用于分类的一种树结构。其中的每个内部结点(internal node)代表对某个属性的一次测试,每条边代表一个测试结果,叶结点(l
2、eaf)代表某个类(class)或者类的分布(class distribution),最上面的结点是根结点决策树提供了一种展示在什么条件下会得到什么类别这类规则的方法。下例是为了解决这个问题而建立的一棵决策树,从中可以看到决策树的基本组成部分:决策结点、分支和叶结点,决策树,下图给出了一个商业上使用的决策树的例子。它表示了一个关心电子产品的用户是否会购买PC(buys_computer)的知识,用它可以预测某条记录(某个人)的购买意向,决策树,这棵决策树对销售记录进行分类,指出一个电子产品消费者是否会购买一台计算机“buys_computer”。每个内部结点(方形框)代表对某个属性的一次检测。
3、每个叶结点(椭圆框)代表一个类:buys_computers=yes 或者 buys_computers=no在这个例子中,特征向量为: (age, student, credit_rating, buys_computers)被决策数据的格式为: (age, student, credit_rating)输入新的被决策的记录,可以预测该记录隶属于哪个类。,使用决策树进行分类,第1步:利用训练集建立并精化一棵决策树,建立决策树模型。这个过程实际上是一个从数据中获取知识,进行机器学习的过程第2步:利用生成完毕的决策树对输入数据进行分类。对输入的记录,从根结点依次测试记录的属性值,直到到达某个叶结
4、点,从而找到该记录所在的类,主要内容,什么是决策树ID3算法算法改进C4.5算法CART算法,如何从训练数据中学习决策树?,贷款申请数据集,如何从训练数据中学习决策树?,两种可能的根节点选取方式,哪种更好?,ID3算法,ID3算法主要针对属性选择问题使用信息增益度选择测试属性,ID3决策树建立算法,1 决定分类属性集合;2 对目前的数据表,建立一个节点N3 如果数据库中的数据都属于同一个类,N就是树叶,在树叶上 标出所属的类(纯的类别)4 如果数据表中没有其他属性可以考虑,则N也是树叶,按照少 数服从多数的原则在树叶上标出所属类别(不纯的类别)5 否则,根据平均信息期望值E或GAIN值选出一个
5、最佳属性作 为节点N的测试属性6 节点属性选定后,对于该属性中的每个值: 从N生成一个分支,并将数据表中与该分支有关的数据收集形 成分支节点的数据表,在表中删除节点属性那一栏 7如果分支数据表属性非空,则转1,运用以上算法从该节点建立子树,信息熵 (Entropy),我们常说信息很多,或信息很少,但却很难说清楚信息到底有多少比如一本50多万字的史记有多少信息量?或一套莎士比亚全集有多少信息量?这个问题几千年来都没有人给出很好的解答,直到1948年,香农(Claude Shannon)在他著名的论文“通信的数学原理”中提出了信息熵的概念,才解决了信息的度量问题,并且量化出信息的作用,信息熵 (E
6、ntropy),一条信息的信息量和它的不确定性有着直接的关系比如,要搞清楚一件非常不确定的事,或是我们一无所知的事情,就需要了解大量信息。相反,如果我们对某件事已经有了较多了解,那么不需要太多信息就能把它搞清楚从这个角度看,信息量就等于不确定性的多少如何量化信息的度量呢?,信息熵 (Entropy),假如我错过了一个有32支球队参加的足球赛,赛后我问一个知道比赛结果的观众“哪支球队是冠军”?他不愿意直接告诉我,而让我猜,每猜一次,他要收一元钱才肯告诉我是否猜对,那我需要付多少钱才能知道谁是冠军呢?,我可以把球队编号,从1到32,然后问“冠军球队在1-16号中吗?”,假如他告诉我猜对了,我就接着
7、问“冠军在1-8号中吗?”,假如他说猜错了,那我就知道冠军在9-16号中。这样只要5次,我就能知道哪支球队是冠军,当然,香农不是用钱,而是用比特(bit)来度量信息量,在上例中,这条消息的信息量是5比特,信息量的比特数和所有可能情况的对数有关,例如本例中,信息量 = log (球队数),即 5 = log (32),信息熵 (Entropy),实际上可能不需要5次就能猜出谁是冠军,因为一些强队得冠的可能性更高,因此第一次猜测时可以把少数几支强队分成一组,其它球队分成另一组,然后猜冠军球队是否在那几支强队中这样,也许三次或四次就能猜出结果。因此,当每支球队夺冠的可能性(概率)不等时,这条信息的信
8、息量比5比特少香农指出,它的准确信息量应该是,1,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的信息熵:,例: 计算
9、对下列数据集分类所需的信息熵,|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可以看到一个
10、趋势,当数据变得越来越“纯”时,熵的值变得越来越小。当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划分后,数据集的信息熵:,
11、其中, 充当第 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(收入) = In
12、fo(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,确定第一次分裂的属性,年龄,30,30-40,40
13、,“年龄”属性具体最高信息增益,成为分裂属性,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
14、* (-1/2 * log1/2 - 1/2 * log1/2)= 0.951,“学生”属性具体最高信息增益,成为分裂属性,确定第二次分裂的属性,年龄,30,30-40,40,学生,不买,买,不是学生,是学生,.,买,ID3决策树建立算法,1 决定分类属性;2 对目前的数据表,建立一个节点N3 如果数据库中的数据都属于同一个类,N就是树叶,在树叶上 标出所属的类4 如果数据表中没有其他属性可以考虑,则N也是树叶,按照少 数服从多数的原则在树叶上标出所属类别5 否则,根据平均信息期望值E或GAIN值选出一个最佳属性作 为节点N的测试属性6 节点属性选定后,对于该属性中的每个值: 从N生成一个分支
15、,并将数据表中与该分支有关的数据收集形 成分支节点的数据表,在表中删除节点属性那一栏7如果分支数据表属性非空,则转1,运用以上算法从该节点建立子树,它首先对数据进行处理,利用归纳法生成可读的规则和决策树,然后使用决策对新数据进行分析。本质上决策树是通过一系列规则对数据进行分类的过程。决策树技术发现数据模式和规则的核心是采用递归分割的贪婪算法。,决策树的基本原理,分类决策树,A decision tree is so called because the predictive model can be represented in a tree-like structure. the targe
16、t is categorical, the model is a called a classification tree.,分类树采用的标准: 分类错误率: Gini 指数: 信息熵:,主要内容,什么是决策树ID3算法算法改进C4.5算法CART算法,C4.5算法对ID3的改进,改进1:用信息增益率代替信息增益来选择属性改进2:能够完成对连续值属性的离散化处理改进3:能处理属性值缺失的情况改进4:在决策树构造完成之后进行剪枝,十大数据挖掘算法,C4.5,k-Means,SVM,Apriori,EM,PageRank,AdaBoost,kNN,Nave Bayes,CART,改进1:信息增益的
17、问题,假设按属性 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划分得到的信息增益最大,显然,这种
18、划分对分类没有用处。,改进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收入
19、(D)= 0.029 / 1.557 = 0.019,改进2:连续值属性与分裂点,对于连续值属性,按属性值大小从小到大排序,取每对相邻值的中点作为可能的分裂点split_point。假设一连续值属性共有N个不同的属性值,则可找到N-1个可能的分裂点。检查每个可能分裂点,取能使得信息增益最大的分裂点,将D分裂成D1: A split_point(一个分裂点,二分法,二叉树),5,6,10,5.5,8,=8,8,C4.5不使用中点,而是直接使用一对值中较小的值作为可能的分裂点,如本例中将使用5, 6作为可能分裂点,多个分裂点?多分法,多叉决策树,改进3:缺失值的处理,在某些情况下,可供使用的数据可
20、能缺少某些属性的值,例如,一种简单的办法是赋予它该属性最常见的值,例如将“晴”或“雨”赋予第6个实例的天气属性,一种更复杂的策略是为A的每个可能值赋予一个概率,改进3:缺失值的处理,建树过程(学习过程)选定训练样本实例有缺失值,如何知道要将其分配到哪个分支?分类过程(测试过程或者工作过程)待分类实例有缺失值,如何测试该实例属于哪个分支?,天气,晴,多云,雨,(天气=缺失,温度=72,湿度=90.),改进3: C4.5中缺失值的处理 - 建树过程(学习过程),Gain(A) = F ( Info(D) InfoA(D),其中 F 为属性值未缺失的实例所占比例;计算 Info(D) 和 InfoA
21、(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 时,将缺失的属性值当作一个正常值进行计算
22、,本例中,当作天气有四个值,分别是晴, 多云, 雨, ?,再计算其 SplitInfo,SplitInfo天气(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个
23、实例中共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,75,叶节点以 (N/E) 的形式定义,其中 N 为到达该叶节点的实例数,E 为其中属于其它分类的实例数。例如,不玩(3.4/0.4) 表示3.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 决策树 分类 ppt 课件

链接地址:https://www.31ppt.com/p-1315859.html