信息量是对信息的度量,其大小与概率有关,概率越小,事件发生带来的信息量越大。因此信息量是概率的减函数,故选择 logp(x_i)^{-1} 来衡量信息量。
信息熵是信息量的期望,衡量事件发生带来的平均信息。
信息熵也用来评估样本集合的纯度。如果样本集合有很多类别,则样本的纯度就比较低,信息熵就越大;如果样本的集合的类别比较少,则样本的纯度就比较高,信息熵就越小。
信息熵公式:
H(X) = -\sum_{i=1}^{n}p(x_i)logp(x_i)
对联合分布 p(x,y),Y 对 X 的条件熵是 Y 的条件分布的熵对 X 的数学期望。其公式为:
\begin{split} H(Y/X) &= \sum_{i=1}^{n}p(x_i)(-\sum_{j=1}^{m}p(y_j/x)logp(y_j/x)) \\ &= -\sum_{x \in X} \sum_{y \in Y} p(x,y)logp(y/x) \end{split}
给定条件下的条件熵会变小,因为条件给了新的信息,系统的不确定性会减小。信息熵与条件熵的差值即为信息增益。
信息增益法则的缺陷在于利用信息增益会倾向于选择特征取值较多的节点。特征取值较多,条件熵越小,信息增益越大。考虑极限情况,假设采用样本编号作为分类特征,那么每个编号唯一确定一个样本,条件熵为 0,信息增益最大。但这样的分类方式显然没有意义,不具备泛化能力。
采用信息增益率作为评判属性分类的标准:
Gain\_ratio(D, a) = \frac{Gain(D,a)}{IV(a)} \\ IV(a) = -\sum_{v=1}^{V}\frac{D^v}{D}log\frac{D^v}{D}
IV(a) 被称为特征 a 的固有值,计算方式与信息熵的计算方式类似,衡量的是特征 a 的纯度。如果特征 a 的取值很多,那么 a 的纯度就很低,IV(a) 的取值就越大,最后得到的信息增益率就越低。
IV(a) 是一个惩罚项,对类别较多的特征增加一个惩罚因子。采用信息增益率作为判定划分特征的方法被称为 C4.5。在实际中,C4.5 先通过一遍筛选,将信息增益低于平均水平的属性剔除掉,之后从剩下的属性中选择信息增益率最高的。