[机器学习]决策树(decision tree)--4.信息增益

前面提到了信息熵,公式为:Ent(D) = -\sum_{1}^k p_{k}\log_x p_{k}。本篇文章我们介绍信息增益。

我们先记住很抽象的一句话,属性划分样本所获得的信息增益。

如何理解呢?

我如何挑选出想要的瓜,如何挑选出好瓜和坏瓜,瓜的属性是不是可以给我带来帮助。

那么,属性划分样本所获得的信息增益,这一句话,就是,属性所带来的帮助。

所以信息增益=帮助。

如何量化信息增益呢?信息增益的公式为:Gain(D,a)=Ent(D)-\sum_{v=1}^V \frac{\vert D^v  \vert }{\vert D \vert }Ent(D^v )

其中,Ent(D)即为信息熵,后面的Ent(D^v ) 也是信息熵。它们有什么区别呢?

Ent(D^v ) 中的v代表单个属性中的某个类别。比如说色泽是瓜的某个属性,色泽的类别就是,青绿色、浅白色、乌黑色。所以\sum_{v=1}^V Ent(D^v ) 就代表将各个类别的信息熵进行相加。

西瓜数据集

对于上面的数据集,Ent(D)\sum_{v=1}^V Ent(D^v ) 分别是多少呢?

首先,我们计算Ent(D)Ent(D)是针对整个数据集的,整个数据集好瓜有8个,坏瓜有9个。

所以将好瓜p_{0} =\frac{8}{17} ,坏瓜p_{2} =\frac{9}{17} ,坏瓜带入公式:Ent(D) = -\sum_{1}^k p_{k}\log_x p_{k}中,可得0.998。

然后,要计算\sum_{v=1}^V Ent(D^v ) ,需要分为两步:1.先计算Ent(D^v ) ,2.再加起来。

如何计算Ent(D^v ) 呢?我们先分析一下,式中的v代表单个属性中的某个类别,那么Ent(D^v ) 就代表单个属性中某个类别的信息熵。

比如色泽这个属性,有三个类别。那么,色泽中的每个类别都对应一个信息熵。青绿色的信息熵,如何计算呢?

青绿色有6个样本,分别是:1,4,6,10,13,17。这6个样本中,好瓜有3个,分别是:1,4,6,坏瓜有3个,分别是:10,13,17。

对于青绿色这个类别,好瓜的概率为:p_{1}=\frac{3}{6}  ,坏瓜的概率为:p_{2}=\frac{3}{6}

所以Ent(D^1 ) =-(\frac{3}{6} \log_2 \frac{3}{6} + \frac{3}{6} \log_2 \frac{3}{6} ) = 1.0

同理,对于色泽为乌黑和浅白,Ent(D^2 )=0.918Ent(D^3 )=0.722

所以\sum_{v=1}^V Ent(D^v ) =Ent(D^1 )+Ent(D^2 )+Ent(D^3 )

我们注意到,信息增益的公式为:Gain(D,a)=Ent(D)-\sum_{v=1}^V \frac{\vert D^v  \vert }{\vert D \vert }Ent(D^v ) ,在Ent(D^v ) 的前面还有个系数,这个系数是什么意思呢?

对于青绿色这个类别来说,一共有6个样本,而数据集的样本总数为17,所以Ent(D^1 ) 前面的系数为:\frac{6}{17}

同理,乌黑和浅白前面的系数分别为:\frac{6}{17} \frac{5}{17}

所以,色泽这个属性的信息增益为:Gain(D,色泽)=Ent(D)-\sum_{v=1}^3 \frac{\vert D^v  \vert }{\vert D \vert }Ent(D^v ) = 0.998 - ( \frac{6}{17} *1.0 +\frac{6}{17} *0.918 + \frac{5}{17} *0.722 ) = 0.109

我们会挑选一个信息增益最大的属性,然后将它选为划分属性。

为什么要挑选信息增益最大的属性呢?

我们回想一下,信息增益是不是等于帮助?

肯定要选一个帮助最大的属性,来辅助我们做决策,这里的决策就是挑选西瓜。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容