决策树-上-ID3 C4.5 CART 及剪枝

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
决策树-上
武承羲
内容
• 决策树基础 • 经典决策树 • 剪枝
决策树
• 决策树: 用来表示决策和相应的决策结果对应关系的树。树中每一个 非叶节点表示一个决策,该决策的值导致不同的决策结果(叶节点)或 者影响后面的决策选择。 • 示例:
天 气
雨 晴 风 强 弱 强 阳 光 弱 玩 阴 玩
不玩

不玩
决策树
• C4.5算法缺点:
– 在构造树的过程中,需要对数据集进行多次的 顺序扫描和排序,因而导致算法的低效。
C5.0
• 思想:加入Boosting算法框架 • 特点:
– 更快 – 内存使用更有效 – 更小的决策树
• 商业机密
– C5.0教程:http://www.rulequest.com/see5unix.html – 裁剪版:http://rulequest.com/download.html
– 基于错误剪枝EBP(Error-Based Pruning)
C4.5-连续型属性
• 离散化处理:将连续型的属性变量进行离散化处 理,形成决策树的训练集
– 把需要处理的样本(对应根节点)或样本子集 (对应子树)按照连续变量的大小从小到大进 行排序 – 假设该属性对应的不同的属性值一共有N个, 那么总共有N-1个可能的候选分割阈值点,每个 候选的分割阈值点的值为上述排序后的属性值 中两两前后连续元素的中点 – 用信息增益率选择最佳划分
• 决策树类型 – 分类树:叶节点对应于一类别 – 回归树:叶节点对应于一连续值 • ID3, C4.5 and C5.0 ( Ross Quinlan ) • CART ( L.Breiman,J.Friedman,R.Olshen和C.Stone ) • 思想:空间划分!
– 比如,用变量y表示因变量(分类变量),用x1, x2, x3,...,xm表示自变量。通过递归 的方式把关于自变量的m维空间划分为不重叠的矩形。 – 图示:
ID3/C4.5/C5.0的分类基础
• 信息熵 – 1948年,香农提出了“信息熵”的概念,解决了对系统信息的量 化度量问题。 – 香农认为信息的准确信息量可以用下面的信息熵公式计算:
Entropy ( S ) pi log 2 ( pi )
i 1 C
其中,S表示样本集, C表示样本集合中类别个数(只含有正负样本,则C=2), pi 表示第i个类的概率, (pi 可由类别i中含有样本的个数除以总样本数得到)
i 1 C C vVofF

p (v)Entropy ( Sv ) p (v){ pvj log 2 ( pvj )}
j 1 C
pi log 2 ( pi )
i 1 C
vVofF

pi log 2 ( pi )
i 1
vVofF

p(v) pvj log 2 ( pvj )
j 1
C
5 4 5 entropy( Soutlook sunny )- entropy( Soutlook overcast )- entropy( Soutlook rain ) 14 14 14 5 5 =0.940286- *0.970951-0- *0.970951 14 14 Gain(S, Temperature) = 0.029 =0.24675 0.940286Gain(S, Humidity) = 0.151 Gain(S, Wind) = 0.048 由此选择根节点划分属性为outlook
C4.5-算法步骤示意
• C4.5(DataSet, featureList):
– 创建根节点R – 如果当前DataSet中的数据都属于同一类,则标记R的类别为该 类 – 如果当前featureList 集合为空,则标记R的类别为当前 DataSet 中样本最多的类别 – 递归情况:
• 从featureList中选择属性F(选择GainRatio(DataSet, F)最大的属性,连续 属性参见上面的离散化过程) • 根据F的每一个值v,将DataSet划分为不同的子集DS,对于每一个DS:
– – – – 创建节点C 如果DS为空,节点C标记为DataSet中样本最多的类别 如果DS不为空,节点C=ID3(DS, featureList - F) 将节点C添加为R的子节点
• C源码:http://id3alg.altervista.org/
Day
D1 D2
Outlook
Sunny Sunny
决策树
ID3=>C4.5=>C5.0
• Ross Quinlan
– ID3 1986年 – C4.5 1993年 – C5.0 1998年 – 2011年获得KDD创新奖
• http://www.rulequest.com/Personal/ • http://rulequest.com/download.html • http://www.rulequest.com/
j 1
C
说明:设样本集S 按离散属性F的V 个不同的取值划分为, 1 ,...SV 共V 个子集 S 其中,pvj 表示Sv中第j类的概率
• 信息增益率(information gain ratio) – 由划分个数引起的偏置问题(划分越多=>引起每个划分内部数据 纯度的变化,分块越小,数据纯度可能越高=>进而引起偏置问 题):
vV v
|S|
*log 2 (
v
|S|
)
– 则用F对S进行划分的信息增益率为:
GainRatio( S , F ) Gain( S , F ) Split ( S , F )
ID3
• 1986年由Quilan提出的ID3算法 • 选择具有最高信息增益的属性作为测试属性。 • ID3(DataSet, featureList):
4 4 0 0 Entropy ( Soutlook overcast ) log log 0 4 4 4 4 定义同属于一类的情况,熵是0
Gain( S , outlook ) pi log 2 ( pi )
i 1
C
vVofF

p(v) pvj log 2 ( pvj )
• 目标变量是类别的 --- 分类树 • 目标变量是连续的 --- 回归树
CART
• 二元划分
– 二叉树不易产生数据碎片,精确度往往也会高于多 叉树,所以在CART算法中,采用了二元划分
• 不纯性度量
– 分类目标:Gini指标、Towing、order Towing – 连续目标:最小平方残差、最小绝对残差
Yes
Yes Yes No
D7
D8 D9 D10 D11 D12 D13 D14
Overcast
Sunny Sunny Rain Sunny Overcast Overcast Rain
Cool
Mild Cool Mild Mild Mild Hot Mild
Normal
High Normal Normal Normal High Normal High

参考: – http://www.cise.ufl.edu/~ddd/cap6635/Fall-97/Short-papers/2.htm – http://en.wikipedia.org/wiki/ID3_algorithm
C4.5
• • • • • 1993年由Quilan提出的C4.5算法(对ID3的改进) 信息增益率 连续值属性 缺失值 后剪枝
CART
• 分类回归树CART(Classification and Regression Trees)
– 1984 << Classification and Regression Trees >>
• L.Breiman,J.Friedman,R.Olshen和C.Stone
– http://www.stat.berkeley.edu/~breiman/ – http://www-stat.stanford.edu/~jhf/ – http://www-stat.stanford.edu/~olshen/
– 创建根节点R – 如果当前DataSet中的数据都属于同一类,则标记R的类别为该 类 – 如果当前featureList 集合为空,则标记R的类别为当前 DataSet 中样本最多的类别 – 递归情况:
• 从featureList中选择属性F(选择Gain(DataSet, F)最大的属性) • 根据F的每一个值v,将DataSet划分为不同的子集DS,对于每一个DS:
Entropy(S ) pi log 2 ( pi )
i 1
C
9 9 5 5 log log 0.940286 14 14 14 14
2 2 3 3 Entropy ( Soutlook sunny ) log log 0.970951 5 5 5 5 3 3 2 2 Entropy ( Soutlook rain ) log log 0.970951 5 5 5 5
Gain(S , F ) pi log 2 ( pi )
i 1 C vVofF

p(v) pvj log 2 ( pvj )
j 1
C
– 设样本集S按离散属性F的V个不同的取值划分为,S1,.., SV共V个子集 – 定义Split(S, F): |S | |S |
Split ( S , F )
– 一个系统越是有序,信息熵就越低;反之,一个系统越乱,信息 熵就越高。所以,信息熵也可以说是系统有序化程度的一个衡量。
• 信息增益(information gain) – 是指期望信息或者信息熵的有效减少量。
Gain( S , F ) Entropy ( S ) ExpectedEntropy (S F ) pi log 2 ( pi )
– – – – 创建节点C 如果DS为空,节点C标记为DataSet中样本最多的类别 如果DS不为空,节点C=C4.5(DS, featureList - F) 将节点C添加为R的子节点
• 源码:http://www.rulequest.com/Personal/
C4.5
• C4.5算法优点:
– 产生的分类规则易于理解 – 准确率较高。
C4.5-缺失值
• 缺失值:在某些情况下,可供使用的数据可能缺少某些 属性的值。例如(X, y)是样本集S中的一个训练实例, X=(F1_v, F2_v, …Fn_v)。但是其属性Fi的值Fi_v未知。 • 处理策略:
– 处理缺少属性值的一种策略是赋给它结点t所对应的训练实 例中该属性的最常见值 – 另外一种更复杂的策略是为Fi的每个可能值赋予一个概率。 例如,给定一个布尔属性Fi,如果结点t包含6个已知Fi_v=1 和4个Fi_v=0的实例,那么Fi_v=1的概率是0.6,而Fi_v=0的概 率是0.4。于是,实例x的60%被分配到Fi_v=1的分支,40%被 分配到另一个分支。这些片断样例(fractional examples)的 目的是计算信息增益,另外,如果有第二个缺少值的属性必 须被测试,这些样例可以在后继的树分支中被进一步细分。 (C4.5中使用) – 简单处理策略就是丢弃这些样本
Strong
Weak Weak Weak Strong Strong Weak Strong
Yes
No Yes Yes Yes Yes Yes No
示例-1
wenku.baidu.com
属性及值域: outlook = { sunny, overcast, rain },temperature = {hot, mild, cool } humidity = { high, normal },wind = {weak, strong }
Temperature Humidity
Hot Hot High High
Wind
Weak Strong
Play ball
No No
D3
D4 D5 D6
Overcast
Rain Rain Rain
Hot
Mild Cool Cool
High
High Normal Normal
Weak
Weak Weak Strong
• 剪枝:
– 用独立的验证数据集对训练集生长的树进行剪枝
Gini指标 (Gini index)
相关文档
最新文档