决策树——ID3算法
用信息增益大小作为决策树属性选择划分的依据是ID3算法构造决策树的核心思想
1.信息熵
在讲信息增益之前就不得不提到信息熵,信息熵定义为:
其中:
D —— 样本集合
Pk —— 第k类样本所占比例(k取1,2,…,|y|)
它是度量样本集合纯度最常用的指标,通常En(t)越小样本集合纯度越高。
2.信息增益
信息增益定义为:
其中:
a —— 样本中的一个属性
D —— 样本集合
Dv ——实际属性值v对应的样本集合
V —— 属性a对应的实际属性值个数
v —— 某一个实际属性值计数
Ent(D) —— D的信息熵
信息增益代表样本集合选择一个属性后的纯度提升大小,信息增益越大就越能够得到更多信息从而选择该属性作为划分依据就更好。
3.西瓜数据集来构造决策树
使用周志华老师在机器学习这本书当中的数据集来简单计算一下。
先计算没有属性划分时的信息熵:
Ent(D)=8/17log2(17/8) + 9/17log2(17/9)=0.998
我们首先选择色泽作为划分依据则:
因为色泽分为三类:青绿,乌黑、浅白
Gain(D,色泽)=Ent(D) - [6/17*(3/6log2(6/3)+3/6log2(6/3))+6/17*(4/6log2(6/4)+2/6log2(6/2))+5/17*(1/5log2(5)+4/5log2(5/4))]=0.998-0.889=0.109
同理可计算出
Gain(D,纹理)=0.381
Gain(D,根蒂)=0.143
Gain(D,敲声)=0.141
Gain(D,脐部)=0.289
Gain(D,触感)=0.006
所以选择纹理作为划分依据
当选择纹理为清晰时样本集合就发生了变化,就是在纹理为清晰时进行决策,D’ = 9。
当选择色泽为下一个决策依据时
Gain(D’,色泽)=Ent(D’)-[4/9*(3/4log2(4/3)+1/4log2(4))+4/9*(3/4log2(4/3)+1/4log2(4))+1/9*(1log2(1))]=0.7642-0.7211=0.0431
同理得
Gain(D’,触感)=0.458
Gain(D’,根蒂)=0.458
Gain(D’,敲声)=0.331
Gain(D’,脐部)=0.458
所以在选择触感、根蒂、脐部之一作为划分依据,再划分,如纹理为清晰且触感为硬滑。
最后可以生成下图所示的决策树:
参考文献:周志华.机器学习[M].北京:清华大学出版社,2016.