决策树分类

243 阅读3分钟

选择最佳划分属性

结点的不纯度度量

一、熵

二、基尼指数

三、误分类率

举例

表11.2为14个关于是否打羽毛球样本数据表,每个样本中有4个关于天气的属性:天气状况、气温、湿度、风力;有2个类别属性:玩(是)或者不玩(否)。 表11.2 14个关于是否打羽毛球的样本数据

基尼指数

H(s)= 1 - (5/14)^2 -(9/14)^2=0.459

天气情况

H(S晴天)= 1 - (3/5)^2  -(2/5)^2=0.48
H(S阴天)= 1 - (4/4)^2  -(0)^2=0
H(S下雨)= 1 - (2/5)^2  -(3/5)^2=0.48
E(天气情况)=  5/14×H(S晴天)+4/14×H(S晴天)+5/14×H(S下雨)=0.343
I(S,天气情况)= H(s)- E(天气情况)=0.116

气温情况

H(S_热)=0.5
H(S_适宜)=0.444
H(S_冷)=0.375
E(气温情况)=0.440
I(S,气温情况)=H(S)-E(气温情况)=0.019

湿度情况

H(S_高)=0.490
H(S_正常)=0.245
E(湿度情况)=0.367
I(S,湿度情况)=H(S)-E(气温情况)=0.092

风力情况

H(S_高)=0.5
H(S_低)=0.375
E(风力情况)=0.428
I(S,风力情况)=H(S)-E(风力情况)=0.031
I(S,天气情况)> I(S,湿度情况)>I(S,风力情况)>I(S,气温情况)

综上,选择天气情况为根节点

同理:在晴天情况下

气温情况

H(S)=0.48
H(S_热)=0
H(S_适宜)=0.5
H(S_冷)=0.0
E(气温情况)=0.2
I(S,气温情况)=H(S)-E(气温情况)=0.28

湿度情况

H(S_高)=0.0
H(S_正常)=0.0
E(湿度情况)=0.0
I(S,湿度情况)=H(S)-E(湿度情况)=0.48

风力情况

H(S_高)=0.5
H(S_低)=0.444
E(风力状况)=0.467
I(S,风力状况)=H(S)-E(风力状况)=0.013

结果:

I(S,湿度状况)>I(S,气温状况)>I(S,风力状况)

那么节点的选择如下:

同理:在下雨状态下

气温情况

H(S)=0.48
H(S_热)=0
H(S_适宜)=0.5
H(S_冷)=0.444
E(气温情况)=0.467
I(S,气温情况)=H(S)-E(气温情况)=0.013

湿度情况

H(S_高)=0.5
H(S_正常)=0.444
E(湿度情况)=0.467
I(S,湿度情况)=H(S)-E(湿度情况)=0.013

风力情况

H(S_高)=0
H(S_低)=0
E(风力情况)=0
I(S,风力情况)=H(S)-E(风力情况)=0.48

I(S,风力情况)>I(S,湿度情况)=I(S,气温情况)

节点选择如下:

误分类率

H(S)=1-9/14=0.357

天气情况

H(S_晴天 )=1-3/5=0.4
H(S_阴天 )=1-4/4=0
H(S_下雨 )=1-3/5=0.4
E(天气情况)=5/14×H(S_晴天)+4/14×H(S_阴天)+5/14×H(S_下雨)=0.286
I(S,天气情况)=H(S)-E(天气情况)=0.071

气温情况

H(S_热)=0.5
H(S_适宜)=0.333
H(S_冷)=0.25
E(气温情况)=0.357
I(S,气温情况)=H(S)-E(气温情况)=0.000

湿度情况

H(S_高)=0.429
H(S_正常)=0.143
E(湿度情况)=0.286
I(S,湿度情况)=H(S)-E(湿度情况)=0.071

风力情况

H(S_高)=0.5
H(S_低)=0.25
E(风力情况)=0.357
I(S,风力情况)=H(S)-E(风力情况)=0.000
I(S,天气情况)= I(S,湿度情况)>I(S,气温情况)=I(S,风力情况)

因为天气和湿度相同,可以任意选择一个。 同理,晴天情况下

气温情况

H(S)=0.4
H(S_热)=0
H(S_适宜)=0.5
H(S_冷)=0.0
E(气温情况)=0.2
I(S,气温情况)=H(S)-E(气温情况)=0.2

湿度情况

H(S_高)=0.0
H(S_正常)=0.0
E(湿度情况)=0.0
I(S,湿度情况)=H(S)-E(湿度情况)=0.4

风力情况

H(S_高)=0.5
H(S_低)=0.333
E(风力情况)=0.4
I(S,风力情况)=H(S)-E(风力情况)=0.000

I(S,湿度情况)>I(S,气温情况)>I(S,风力情况)

因此,选择湿度为节点 下雨情况下

气温情况

H(S)=0.4
H(S_热)=0
H(S_适宜)=0.333
H(S_冷)=0.5
E(气温情况)=0.4
I(S,气温情况)=H(S)-E(气温情况)=0.000

湿度情况

H(S_高)=0.5
H(S_正常)=0.333
E(湿度情况)=0.4
I(S,湿度情况)=H(S)-E(气温情况)=0.000

风力情况

H(S_高)=0
H(S_低)=0
E(风力情况)=0
I(S,风力情况)=H(S)-E(风力情况)=0.4

I(S,风力情况)>I(S,湿度情况)=I(S,气温情况)

因此,选择风力为节点