来举个简单的例子:
数据集D(出去玩是标签)
A代表属性,A=心情、天气
心情 天气 出去玩
好 晴朗 玩
不好 下雨 不玩
不好 刮风 不玩
好了 ,现在建立决策树,根节点是啥?
第一种方式(信息熵增益):
令A=天气
总熵S(D)=−13log213−23log223=0.918-\frac{1}{3}log_{2}\frac{1}{3}-\frac{2}{3}log_{2}\frac{2}{3}=0.918−31log231−32log232=0.918
条件熵S(D|A)=13⋅0+13⋅0+13⋅0=0\frac{1}{3}·0+\frac{1}{3}·0+\frac{1}{3}·0=031⋅0+31⋅0+31⋅0=0
g(D,A)=S(D)-S(D|A)=0.918
令A=心情
总熵S(D)=−13log213−23log223=0.918-\frac{1}{3}log_{2}\frac{1}{3}-\frac{2}{3}log_{2}\frac{2}{3}=0.918−31log231−32log232=0.918
条件熵S(D|A)=13⋅0+23⋅0=0\frac{1}{3}·0+\frac{2}{3}·0=031⋅0+32⋅0=0
g(D,A)=S(D)-S(D|A)=0.918
现在选择哪一个呢?
显然定不下来。
----------------计算心情的信息熵增益率-------------
A=心情时,特征熵=13log213+23log223=0.918\frac{1}{3}log_{2}\frac{1}{3}+\frac{2}{3}log_{2}\frac{2}{3}=0.91831log231+32log232=0.918
A=天气时,特征熵=−3⋅13log213=1.5849-3·\frac{1}{3}log_{2}\frac{1}{3}=1.5849−3⋅31log231=1.5849
那么此时特征A的信息熵增益率是0.9181.5849=0.58\frac{0.918}{1.5849}=0.581.58490.918=0.58
结论,可以看到,使用信息熵增益率可以更好地对数据集进行划分
让划分更加符合实际情况。
因为显然,刮风天出不出去玩是看心情的。