说到熵之前,先了解下什么是信息量。当一个事件发生的概率极低但是发生了,说明信息量比较大,且信息量应该是个正数,基于这样的定义,信息量的公式如下:
将这个式子结合函数图像可以知道,概率 p 越接近 1 ,说明发生概率大,对应的信息量比较小。从函数图像也能看出 h(x) 也是趋近于0的,相反,如果 p 接近于0,那么 h(x) 将会是一个很大的数值。
熵
熵表示随机变量的不确定程度,假设一个事件有多种可能的结果,用 X 表示该事件,用 p 表示各个结果的概率:
则随机变量 X 的熵的定义为:
上述公式有如下约定:
-
通常对数的底为2
-
若 p 等于0,那么定义 0log0 = 0
由定义知,熵的取值只与 X 各个类别的分布有关,与其取值无关,因此定义式也写作:
可以理解为熵是事件 X 所有不同结果带来的信息量的期望。如果一个事件只有一种结果,那么 p 等于1,此时的熵就等于 0 。因此,熵越大,表示随机变量的不确定程度越大。
条件熵
熵是用来表示随机变量的不确定程度,那么条件熵 H(Y|X) 表示在已知随机变量 X 的条件下 随机变量 Y 的不确定性(可以与条件概率类比)。
随机变量 X 给定条件下 Y 的条件熵 H(Y|X) 定义为在给定 X 的条件下 Y 的条件概率分布的熵 对 X 的数学期望。
其中:
也就是遍历 X 的每一种情况,在 X 取不同的 xi 时,有着各自的 pi 和 H(Y|X=xi) ,将他们相乘后累加即可得到条件熵。
当熵和条件熵中的概率由数据估计得到时(比如用频率表示概率),所对应的熵与条件熵分别称为经验熵和经验条件熵。
信息增益
信息增益表示得知特征 A 的信息而使得类 X 的信息熵的减少量或不确定性的减少量或者数据无序度的减少量。
特征 A 对训练数据集 D 的信息增益 g(D, A) 定义为集合 D 的经验熵 H(D) 与特征 A 在给定条件 D 的经验条件熵 H(D|A) 之差。简单来说,信息增益 = 经验熵 - 经验条件熵,即:
一般地,熵H(Y)与条件熵H(Y|X)之差称为互信息。决策树学习中的信息增益等价于训练数据集中类与特征的互信息。
我们再来仔细看看公式,经验熵 H(D) 表示对数据集D进行分类的不确定性,给定数据集后 H(D) 也就随之确定了。经验条件熵 H(D|A) 表示在特征 A 给定的条件下对数据集D进行分类的不确定性,经验条件熵的值可大可小,都取决于特征 A。如果特征 A 可以将数据集 D 完美分类,那么此时的 H(D|A) 将取得最小值。而信息增益则是 H(D) 与 H(D|A) 的差值,当特征 A 可以完美分类时,信息增益也就是最大的。不同的特征具有不同的信息增益,我们认为信息增益大的特征具有更强的分类能力。
参考链接: