点进来的读者肯定都看过《机器学习实战》第三章-决策树,所以就不罗嗦啦。上一篇文章实在是太罗嗦了。:)
信息熵(或香浓熵): Entropy
首先举个例子:假如美国参众两院要弹劾川普,通过提前走访调查议员的想法,得出结果有80%的可能性川普被弹劾,20%的可能性川普不被弹劾。那么我们知道了川普很可能会被弹劾。好了,我们待会儿再来说川普。现在给出信息的计算公式:
其中 xi 代表某个随机事件, p(xi) 表示发生这个随机事件的概率。弹劾案结束后,假设你不知道结果,现在有个人跑过来跟你说,川普被弹劾了,你微微一笑,我早就知道了,那么川普被弹劾这条消息对你来说信息量很小,如果用上面的公式计算,其值为:
如果有人跑过来跟你说,川普没被弹劾,你会很惊讶,这几天发生了什么,为什么局势变化如此知道,到底是道德的沦丧还是人性的泯灭。。。扯远了。总之,这是一条信息量很大的消息,其值为:
上面讲的都是单个事件的信息量如何计算。下面说信息熵怎么计算。 信息熵是一个事物不确定性的量化描述,其计算公式如下:
即各个随机事件发生的信息的期望值。其意义就是整件事情的平均信息量有多大。例如
我们再来假设,被弹劾的概率为 50%,不被弹劾的概率也为 50%,那么信息熵为:
我们可以从上面这个例子知道,事发之前,越不确定哪个事件会发生,不确定性就越高,80%和20% VS 50%和%50,我们自然知道后者的不确定性较高, 信息熵是一个事物不确定性的量化描述。
所以说,对于式子
当 p(x1)=p(x2)=...=p(xn) 时, H 有最大值,即不确定性最大。当然了,这是直观的理解其取最大值的情况。数学上需要使用拉格朗日乘子法(Lagrange multiplier)来证明。
为了不过多的深究数学知识,我们就到此为止,知道其含义和计算方法即可。下面还有一些参考资料:
维基百科:信息熵
知乎问题:信息熵是什么
Revoledu:How to Measure Impurity
StackExchange:Why is Entropy maximised when the probability distribution is uniform?
维基百科:最大熵概率分布
信息增益(information gain)
上面已经做好了铺垫:信息熵是一个事物不确定性的量化描述。也可以说信息熵是一个集合混乱程度的量化描述,例如,上面的弹劾问题是两个事件的集合,其混乱程度取决于各个事件发生的概率。构建决策树的过程,就是找到一个划分使集合混乱程度最低的过程。
下面我们从感性的方面来理解信息增益。
信息增益表示数据集划分前和划分后信息熵发生的变化。例如有如下三种划分方案:
- A:划分前信息熵为 5,划分后信息熵为 3
- B:划分前信息熵为 5,划分后信息熵为 4
- C:划分前信息熵为 5,划分后信息熵为 1
那么三种方案信息增益分别为2、1、4。也就是说,按照方案 C 划分数据集后,数据集的信息熵最小,相比其他划分后的结果,其混乱程度最低,在按方案 C 划分的过程中,我们得到的信息最多。那么方案 C 就是最好的划分方案。构建决策树就是要找出在划分数据集的过程中以哪个特征划分数据集,能够获得最大的信息增益,实现最准确的分类。
下面举个例子:假如老王要去买车,销售人员将问一些问题来确定老王想要哪种车。我们列个表来看看这个过程中,销售人员获得信息的过程,在这里,由于销售人员有多年的经验,所以销售人员就是一棵活生生的决策树:
销售人员 | 老王 | 销售人员的信息增益 | 老王对车的要求的不确定性 |
---|---|---|---|
您需是要买私家车吗? | 是 | 排除非私家车(例如卡车、工程车) | 下降 |
您需要跑车吗? | 不需要 | 排除跑车 | 下降 |
您需要两厢的还是三厢的? | 三厢 | 排除两厢 | 下降 |
您需要越野车还是小轿车? | 越野车 | 排除小轿车 | 下降 |
… | … | … | 下降 |
那您觉得宝马X6怎么样呢? | 好!买了! | 提成到手了 | 不确定性为0 |
上面的过程,就是销售人员决策的过程,我们要做的就是根据汽车的各个特点,设置合适的问题,能够用最少的问题,排除尽可能多的车辆,最终得到一个合适的类别。那么每当问完一个问题,信息增益当然是越大越好了。而构建决策树的过程,就相当于销售人员学习如何给车分类,使各种类别的车的集合更加有序(信息熵/混乱程度更低)的过程。另外,训练集当然也就是成百上千种类别的车了。
最后一个例子:假如有如下数据集
车名 | 品牌 | 体积 | 类别 |
---|---|---|---|
a | 奔驰 | 2 | 私家车 |
b | 奔驰 | 20 | 工程车 |
c | 奔驰 | 3 | 私家车 |
d | 大众 | 4 | 私家车 |
e | 大众 | 18 | 工程车 |
未划分前信息熵为(私家车的比例为 3/5,工程车的比例为 2/5):
如果某个载重收费系统将车按照 品牌划分数据集,则可分为 A{a,b,c} 和 B{d,e} 两类,那么奔驰车的比例为3/5(其中私家车占2/3,工程车占1/3),大众车的比例为2/5(其中私家车占1/2,工程车占1/2)。这时划分后的信息熵(混乱程度,无序程度)为:
即无序度为 0.9508,注意,总信息熵是子集信息熵的加权平均值(期望)。
如果载重收费系统将车按照体积分为体积大的类和体积小的类(10为界限),则可分为 A{a,c,d} 和 B{b,e} 两类,那么小体积车的比例为 3/5(其中私家车的比例为 1,工程车的比例为 0)。大体积车的比例为 2/5(其中私家车的比例为 0,工程车的比例为 1)。这时划分后的信息熵(混乱程度,无序程度)为:
即无序度为 0,很有序
那么两种划分方法的信息增益如下:
方法 | 划分前的信息熵 | 划分后的信息熵 | 信息增益 |
---|---|---|---|
按品牌 | 0.970 | 0.9508 | 0.0192 |
按体积 | 0.970 | 0 | 0.970 |
由此可见,按照体积划分,才是最好的选择。信息增益就是为了确定最好的划分。
想了解更多关于信息增益的知识,可以查看如下参考资料:
维基百科:https://en.wikipedia.org/wiki/Information_gain_in_decision_trees
Decision Tree - Classification:http://www.saedsayad.com/decision_tree.htm