Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
决策树
2014.5.21
by 于哲
年龄
⻓长相 不⻅见
>30<30
收⼊入
帅、中等
不⻅见
丑
⾼高
⻅见 公务员
中等
不⻅见
低
不是
不⻅见
是
⻅见
▅ 判断条件
▅ 决策结果
概念
1.决策树(decision tree)是⼀一个树结构(可以是⼆二叉树或⾮非⼆二叉树)
!
2.它是由节点和有向边组成的层次结构, 树中包含3中节点:根节点、内部节点、
叶⼦子节点。
!
3.决策树只有⼀一个根节点,是全体训练数据的集合。...
属性选择度量
决策树的构造过程不依赖领域知识,它使⽤用属性选择度量
来选择将数据最好地划分成不同的类的属性。
!
!
构造决策树的关键步骤是分裂属性。
!
!
所谓分裂属性就是在某个节点处按照某⼀一特征属性的不同
划分构造不同的分⽀支,其⺫⽬目...
属性选择度量算法
1. ID3算法
!
2. C4.5算法
!
3. CART算法
!
etc.
ID3算法
1.⾹香农熵(Entropy)
设D为⽤用类别对训练元组进⾏行的划分,则D的熵(entropy)表
⽰示为
!
!
!
pi表⽰示第i个类别在整个训练数据中出现的概率
!
2.信息增益(Information Gain)
划分数据集...
计算
RID age looks income servant Class:date
1 24 handsome high no yes
2 35 ugly medium yes no
3 29 ordinary medium yes yes
...
计算
1.共12条记录
⺫⽬目标属性:
⻅见⾯面(2种情况:⻅见/不⻅见)
参考属性:
年龄(2种情况:>30/<=30),
⻓长相(3种情况:handsome/ordinary/ugly),
公务员(2种情况:yes/no),
收⼊入(3种情...
3.各个参考属性在取各⾃自的值对应⺫⽬目标属性的信息熵
以age属性为例,分别为<=30, >30
<=30 出现7次,>30出现5次
其中<=30的时候,⺫⽬目标属性4次yes,3次no
!
!
!
>30的时候,⺫⽬目标属性0次yes,5次...
那么,基于age属性划分数据集的信息增益为:
!
!
!
!
同理可得其他属性的信息增益
!
假设基于age的信息增益最⼤大,那么选择age来划分数据集
age?
<=30 >30
looks income servant date
handsome high no yes
ordinary medium yes yes
ordinary low no no
ugly high no no
ha...
决策树构造
原理:
!
1.得到原始数据集合
2.基于最好的特征划分数据集
3.第⼀一次划分后,数据向下传递到树分⽀支的下⼀一个节点
goto 2
!
结束条件:
!
1.遍历完所有划分数据集的属性
2.每个分⽀支下的所有实例都具有相同的分类
...
补充
1.如果属性划分完了,数据⼦子集还是不纯怎么办?
!
⼀一般对这些⼦子集进⾏行“多数表决”,即使⽤用此⼦子集中出现次数最多的类别作为
此节点类别,然后将此节点作为叶⼦子节点。
!
2.关于剪枝
!
为了处理由于数据中的噪声和离群点导致的过...
参考
1.http://www.cnblogs.com/leoo2sk/archive/2010/09/19/
decision-tree.html
!
2.http://www.cnblogs.com/justcxtoworld/p/3346...
谢谢
Upcoming SlideShare
Loading in …5
×

决策树入门

823 views

Published on

决策树入门

Published in: Data & Analytics
  • Be the first to comment

决策树入门

  1. 1. 决策树 2014.5.21 by 于哲
  2. 2. 年龄 ⻓长相 不⻅见 >30<30 收⼊入 帅、中等 不⻅见 丑 ⾼高 ⻅见 公务员 中等 不⻅见 低 不是 不⻅见 是 ⻅见 ▅ 判断条件 ▅ 决策结果
  3. 3. 概念 1.决策树(decision tree)是⼀一个树结构(可以是⼆二叉树或⾮非⼆二叉树) ! 2.它是由节点和有向边组成的层次结构, 树中包含3中节点:根节点、内部节点、 叶⼦子节点。 ! 3.决策树只有⼀一个根节点,是全体训练数据的集合。 ! 4.树中每个内部节点都是⼀一个分裂问题:指定了对实例的某个属性的测试,它将 到达该节点的样本按照某个特定的属性进⾏行分割,并且该节点的每⼀一个后继分 ⽀支对应于该属性的⼀一个可能值。 ! 5.每个叶⼦子节点是带有分类标签的数据集合即为实例所属的分类。
  4. 4. 属性选择度量 决策树的构造过程不依赖领域知识,它使⽤用属性选择度量 来选择将数据最好地划分成不同的类的属性。 ! ! 构造决策树的关键步骤是分裂属性。 ! ! 所谓分裂属性就是在某个节点处按照某⼀一特征属性的不同 划分构造不同的分⽀支,其⺫⽬目标是让各个分裂⼦子集尽可能地 “纯”。尽可能“纯”就是尽量让⼀一个分裂⼦子集中待分类项属 于同⼀一类别。
  5. 5. 属性选择度量算法 1. ID3算法 ! 2. C4.5算法 ! 3. CART算法 ! etc.
  6. 6. ID3算法 1.⾹香农熵(Entropy) 设D为⽤用类别对训练元组进⾏行的划分,则D的熵(entropy)表 ⽰示为 ! ! ! pi表⽰示第i个类别在整个训练数据中出现的概率 ! 2.信息增益(Information Gain) 划分数据集之前之后信息发⽣生的变化称为信息增益。 信息增益是⽤用熵作为尺度,是衡量属性对数据分类能⼒力的标准。 (在某特征上划分数据得到最⼤大的信息增益,该特征就是最好 的分离点。) !
  7. 7. 计算 RID age looks income servant Class:date 1 24 handsome high no yes 2 35 ugly medium yes no 3 29 ordinary medium yes yes 4 28 ordinary low no no 5 25 ugly high no no 6 30 handsome low yes yes 7 32 handsome medium no no 8 23 ugly medium yes no 9 25 ordinary high yes yes 10 33 ordinary low yes no 11 37 ugly low no no 12 31 ordinary medium no no
  8. 8. 计算 1.共12条记录 ⺫⽬目标属性: ⻅见⾯面(2种情况:⻅见/不⻅见) 参考属性: 年龄(2种情况:>30/<=30), ⻓长相(3种情况:handsome/ordinary/ugly), 公务员(2种情况:yes/no), 收⼊入(3种情况:high/medium/low) ! 2.参考属性信息熵 ! ! ! ! 12条记录,4个yes,8个no ! !
  9. 9. 3.各个参考属性在取各⾃自的值对应⺫⽬目标属性的信息熵 以age属性为例,分别为<=30, >30 <=30 出现7次,>30出现5次 其中<=30的时候,⺫⽬目标属性4次yes,3次no ! ! ! >30的时候,⺫⽬目标属性0次yes,5次no ! ! ! ! 整个属性age的信息熵是它们的加权平均值: ! ! ! !
  10. 10. 那么,基于age属性划分数据集的信息增益为: ! ! ! ! 同理可得其他属性的信息增益 ! 假设基于age的信息增益最⼤大,那么选择age来划分数据集
  11. 11. age? <=30 >30 looks income servant date handsome high no yes ordinary medium yes yes ordinary low no no ugly high no no handsome low yes yes ugly medium yes no ordinary high yes yes looks income servant date ugly medium yes no handsome medium no no ordinary low yes no ugly low no no ordinary medium no no
  12. 12. 决策树构造 原理: ! 1.得到原始数据集合 2.基于最好的特征划分数据集 3.第⼀一次划分后,数据向下传递到树分⽀支的下⼀一个节点 goto 2 ! 结束条件: ! 1.遍历完所有划分数据集的属性 2.每个分⽀支下的所有实例都具有相同的分类 ⽐比如age>30的date属性全部为no
  13. 13. 补充 1.如果属性划分完了,数据⼦子集还是不纯怎么办? ! ⼀一般对这些⼦子集进⾏行“多数表决”,即使⽤用此⼦子集中出现次数最多的类别作为 此节点类别,然后将此节点作为叶⼦子节点。 ! 2.关于剪枝 ! 为了处理由于数据中的噪声和离群点导致的过分拟合问题。 ! 先剪枝——在构造过程中,当某个节点满⾜足剪枝条件,则直接停⽌止此分⽀支的构造。 ! 后剪枝——先构造完成完整的决策树,再通过某些条件遍历树进⾏行剪枝。 ! 3.代码参考 ! https://github.com/pbharrin/machinelearninginaction/blob/master/Ch03/trees.py
  14. 14. 参考 1.http://www.cnblogs.com/leoo2sk/archive/2010/09/19/ decision-tree.html ! 2.http://www.cnblogs.com/justcxtoworld/p/3346271.html ! 3.http://blog.sina.com.cn/s/ blog_6e85bf420100ohma.html ! 4.《机器学习实战》第三章 !
  15. 15. 谢谢

×