选择最佳划分属性
结点的不纯度度量
一、熵
二、基尼指数
三、误分类率
举例
表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,气温情况)
因此,选择风力为节点