9
一个决策树的例子( Different? )
categorical
categorical
continuous
class
Criminal
MarSt
TaxInc
YES
NO
NO
NO
YesNo
Married
Single,
Divorced
< 80K > 80K
Splitting Attributes
训练数据 模型 : 决策树
Tid Criminal
Marital
Status
Taxable
Income
Cheat
1 Yes Single 125K No
2 No Married 100K No
3 No Single 70K No
4 Yes Married 120K No
5 No Divorced 95K Yes
6 No Married 60K No
7 Yes Divorced 220K No
8 No Single 85K Yes
9 No Married 75K No
10 No Single 90K Yes
10.
10
一个决策树的例子( Different? )
categorical
categorical
continuous
class
Criminal
MarSt
TaxInc
YES
NO
NO
NO
YesNo
Married
Single,
Divorced
< 80K > 80K
Splitting Attributes
Tid Criminal
Marital
Status
Taxable
Income
Cheat
1 Yes Single 125K No
2 No Married 100K No
3 No Single 70K No
4 Yes Married 120K No
5 No Divorced 95K Yes
6 No Married 60K No
7 Yes Divorced 220K No
8 No Single 85K Yes
9 No Married 75K No
10 No Single 90K Yes
MarSt
Criminal
TaxInc
YES
NO
NO
NO
Yes No
Married
Single,
Divorced
< 80K > 80K
两棵决策树的属性划分顺序不一样
到底构造哪课决策树分类效果最好
呢?
11.
11
决策树
决策树分类
Tid Attrib1 Attrib2Attrib3 Class
1 Yes Large 125K No
2 No Medium 100K No
3 No Small 70K No
4 Yes Medium 120K No
5 No Large 95K Yes
6 No Medium 60K No
7 Yes Large 220K No
8 No Small 85K Yes
9 No Medium 75K No
10 No Small 90K Yes
Training Set
Test Set
Tid Attrib1 Attrib2 Attrib3 Class
11 No Small 55K ?
12 Yes Medium 80K ?
13 Yes Large 110K ?
14 No Small 95K ?
15 No Large 67K ?
Learning
algorithm
Learn
Model
Apply
Model
Model
归纳
推理
如何构造
决策树?
13
构造决策树
有许多决策树算法:
信息增益——Information gain ( ID3 )
增益比率—— Gain ration ( ID3 , C4.5 )
基尼指数—— Gini index (SLIQ , SPRINT)
14.
14
依赖于属性的类型
标称
序数
连续
依赖于划分的路数
多路划分
二元划分
怎样为不同类型的属性指定测试条件?
Tid Criminal
Marital
Status
Taxable
Income
Cheat
1 Yes Single 125K No
2 No Married 100K No
3 No Single 70K No
4 Yes Married 120K No
5 No Divorced 95K Yes
6 No Married 60K No
7 Yes Divorced 220K No
8 No Single 85K Yes
9 No Married 75K No
10 No Single 90K Yes
Criminal
MarSt
TaxInc
YES
NO
NO
NO
Yes No
Married
Single,
Divorced
< 80K > 80K
15.
15
多路划分:划分数(输出数)取决
于该属性不同属性值的个数
二元划分:划分数为2 ,这种划分要考虑创建 k 个属性值的
二元划分的所有 2k-1
-1 种方法
婚姻
已婚
未婚
离婚
OR
基于标称属性的划分
Tid Refund
Marital
Status
Taxable
Income
Cheat
1 Yes Single 125K No
2 No Married 100K No
3 No Single 70K No
4 Yes Married 120K No
5 No Divorced 95K Yes
6 No Married 60K No
7 Yes Divorced 220K No
8 No Single 85K Yes
9 No Married 75K No
10 No Single 90K Yes
婚姻
{ 已婚 , 未婚 } { 离婚 }
婚姻
{ 已婚 , 离婚 } { 未婚 }
婚姻
{ 离婚 , 未婚 } { 已婚 }
32
给定结点 t的 Classification Error 值计算 :
)
|
(
max
1
)
( t
i
P
t
Error i
P(C1) = 0/6 = 0 P(C2) = 6/6 = 1
Error = 1 – max (0, 1) = 1 – 1 = 0
P(C1) = 1/6 P(C2) = 5/6
Error = 1 – max (1/6, 5/6) = 1 – 5/6 = 1/6
基于 Classification Error 的划分
c1 0
c2 6
c1 1
c2 5
33.
33
思考,哪棵树子节点纯性最高?
熵偏差
基于熵和 Gini 指标,会趋向于具有大量不同值的划分如:
利用雇员id 产生更纯的划分,但它却毫无用处。
在划分前: 10 个记录 class 0,
10 个记录 class 1
Yes No
Sex?
C0:6
C1:4
C0:4
C1:6
Family Luxury
Car
Type?
Sports
C0:1
C1:3
C0:1
C1:7
C0:8
C1:0
C1
Custom
ID?
…
C10 C11
C20
C0:1
C1:0
C0:0
C1:1
C0:1
C1:0
C0:0
C1:1
34.
34
解决该问题的策略有两种:
限制测试条件只能是二元划分
使用增益率,K 越大, Split_INFO 越大,增益率被平衡。即增
益 率惩罚属性值过多的划分。
INFO
Split
GAIN
RATIO
Gain
Split
split
_
_
k
i
i
i
n
n
n
n
INFO
Split
1
log
_
考虑增益率( Gain Ratio ) C4.5 算法
id 年龄 收入 爱好 信用 购买
1 青 高 否 中 否
2 青 高 否 优 否
3 中 高 否 中 是
4 老 中 否 中 是
5 老 低 是 中 是
6 老 低 是 优 否
7 中 低 是 优 是
8 青 中 否 中 否
9 青 低 是 中 是
10 老 中 是 中 是
11 青 中 是 优 是
12 中 中 否 优 是
13 中 高 是 中 是
14 老 中 否 优 否
35.
35
INFO
Split
GAIN
RATIO
Gain
Split
split
_
_
k
i
i
i
n
n
n
n
INFO
Split
1
log
_
[ 填空
1]
id年龄 收入 爱好 信用 购买
1 青 高 否 中 否
2 青 高 否 优 否
3 中 高 否 中 是
4 老 中 否 中 是
5 老 低 是 中 是
6 老 低 是 优 否
7 中 低 是 优 是
8 青 中 否 中 否
9 青 低 是 中 是
10 老 中 是 中 是
11 青 中 是 优 是
12 中 中 否 优 是
13 中 高 是 中 是
14 老 中 否 优 否
246
.
0
)
(
age
Gain
( ) 0.029
( ) 0.151
( _ ) 0.048
Gain income
Gain fancy
Gain credit rating
填空题
收入属性的划分信息:
36.
36
考虑增益率( Gain Ratio) C4.5 算法
gain_ratio(income) = 0.029/1.557 = 0.019
INFO
Split
GAIN
RATIO
Gain
Split
split
_
_
k
i
i
i
n
n
n
n
INFO
Split
1
log
_
1.557
id 年龄 收入 爱好 信用 购买
1 青 高 否 中 否
2 青 高 否 优 否
3 中 高 否 中 是
4 老 中 否 中 是
5 老 低 是 中 是
6 老 低 是 优 否
7 中 低 是 优 是
8 青 中 否 中 否
9 青 低 是 中 是
10 老 中 是 中 是
11 青 中 是 优 是
12 中 中 否 优 是
13 中 高 是 中 是
14 老 中 否 优 否
246
.
0
)
(
age
Gain
( ) 0.029
( ) 0.151
( _ ) 0.048
Gain income
Gain fancy
Gain credit rating
37.
37
数据是连续的怎么办
二元划分:( A<v) or ( Av )
考虑所有的划分点,选择一个最优划分点 v
多路划分: viA<vi+1 ( i=1,…,k )
Yes No
Taxable
Income
>80k?
二元划分
<10k >80k
Taxable
Income?
[10k,25k] [25k,50k] [50k,80k]
多路划分
分箱操作
38.
38
一个例子
序号 姓名 职业分类职位评级 收入 有房有车 债务情况 评级
1 A 金融 A 类 40W 1 低 钻石男
2 B IT A 类 18W 3 高 经适男
3 C 行政 A 类 19W 2 低 经适男
4 D 司法 A 类 35W 0 低 钻石男
5 E 行政 B 类 11W 3 中 牛奋男
6 F 金融 B 类 37.5W 3 低 钻石男
7 G IT B 类 12W 2 中 牛奋男
8 H 司法 A 类 19.8W 2 低 经适男
9 J 行政 A 类 24.2W 0 低 经适男
10 K 教育 C 类 9.5W 3 低 牛奋男
11 L 司法 A 类 50W 3 中 钻石男
12 M 教育 C 类 11.8W 2 低 牛奋男
13 N IT B 类 17W 0 低 牛奋男
14 P 教育 A 类 32W 2 中 经适男
15 Q 教育 C 类 14W 2 低 经适男
16 R IT B 类 19.2W 2 高 牛奋男