本篇文章我们介绍信息熵。
信息熵(information entropy)是度量样本集合纯度最常用的一种指标。信息熵的公式为:
怎么理解这句话呢?
比如:现在有一个样本D,里面都是西瓜,但是西瓜的质量有好坏之分。假如样本里面都是好瓜,那么第k类样本的概率,即为多少呢?因为这个例子中,只有一类样本:好瓜,所以=1。所以Ent(D)=0。
比如:现在有一个样本,里面也都是西瓜,但是西瓜质量有好有坏。好瓜和坏瓜各占一半,那么这个样本的信息熵为:,这个表达式的结果为:1.0。如果我们不想用计算器计算,也可以参考下面的代码:
# a代表正样本,不代表负样本
# 在本例中正样本为好瓜,负样本为坏瓜
import math
a = 1/2
b = 1/2
Ent = -(a*math.log(a, 2) + b*math.log(b, 2))
print(Ent)
那么我们再重新理解一下上面的定义,度量样本集合纯度最常用的一种指标,是不是大概有点感觉了。纯度越高(比如都是好瓜),信息熵就越低。
我们拿到一个样本之后,如何降低信息熵,也就是如何提升纯度呢?比如:样本中好瓜和坏瓜各占一半,如果,有一个属性,比如说颜色,颜色绿的都是好瓜,其他颜色都是坏瓜。那么,这个属性是不是可以帮助我们更好的判断?
这个问题的答案是肯定的,颜色肯定可以帮助我们更好的判断。对于属性带来的帮助,用更加专业的术语来说,就是用属性去划分样本所获得的“信息增益”。
下一篇文章我们将继续介绍信息增益。