信息熵、条件熵、信息增益与基尼指数

本文主要是对信息熵、信息增益、信息增益比和 Gini 指数的定义进行汇总,使之更加明确记忆。

1 信息熵和条件熵

1.1 信息熵

熵(entropy)是表示随机变量不确定的度量。

\(X\) 是一个取有限个值的离散随机变量,其概率分布为

\[P(X=x_i) = p_i, \quad i=1, 2, ..., n \]

则随机变量 \(X\) 的熵定义为

\[H(x) = -\sum_{i=1}^{n}p_i \log p_i \]

对数以 2 或 \(e\) 为底。

由定义可知,熵只依赖于 \(X\) 的分布,而与 \(X\) 的取值无关,所以也可将 \(X\) 的熵记作 \(H(p)\),即

\[H(p) = -\sum_{i=1}^{n}p_i \log p_i \]

熵越大,随机变量的不确定性就越大。从定义可以验证:

\[0 \le H(p) \le log n \]

证:前一个不等式 \(0 \le H(p)\),obviously.
对于后一个不等式,按照定义,当 \(X\) 的取值概率相等且 \(p_i=\frac{1}{n}\) 时,不确定性最大。即

\[-\sum_{i=1}^{n}p_i \log p_i \le -\sum_{i=1}^{n}\frac{1}{n} log{\frac{1}{n}} = logn \]

令一种方法,根据琴生不等式

\[\begin{aligned} H(x) &= -\sum_{x}p(x)log p(x) \\ & = E[log \frac{1}{p(x)}] \\ & \le log(E[\frac{1}{p(x)}]) \\ & \le log|X| = log n \end{aligned} \]

1.2 条件熵

设有随机变量 \((X, Y)\),其联合概率分布为

\[P(X=x_i, Y=y_j) = p_{ij}, \quad i=1, 2, ..., n \]

条件熵(conditional entropy) \(H(Y|X)\) 表示在已知随机变量 \(X\) 的条件下,随机变量 \(Y\) 的不确定性。随机变量 \(X\) 给定的条件下随机变量 \(Y\) 的条件熵 \(H(Y|X)\) 定义为 \(X\) 给定条件下 \(Y\) 的条件概率分布的熵对 \(X\) 的数学期望

\[H(Y|X) = E_X[H(Y|X)] = \sum_{i=1}^{n}p_i H(Y|X=x_i) \]

这里 \(p_i = P(X=x_i), \quad i=1, 2, ..., n\)

当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵与条件熵分别为经验熵(empirical entropy)和经验条件熵(empirical conditional entropy)。

2 信息增益与信息增益比

2.1 信息增益

信息增益表示得知特征 \(X\) 的信息而使得类 \(Y\) 的信息不确定性减少的程度。

特征 \(A\) 对训练数据集 \(D\) 的信息增益 \(gain(D, A)\) 定义为集合 \(D\) 的经验熵 \(H(D)\) 与特征 \(A\) 给定条件下 \(D\) 的经验条件熵 \(H(D|A)\) 之差,即

\[gain(D, A) = H(D) - H(D|A) \]

设训练数据集为 \(D\)\(|D|\) 表示某样本容量,即样本个数。设有 \(K\) 个类 \(C_k, \quad k=1, 2, ..., K\), \(|C_k|\) 为属于类 \(C_k\) 的样本个数,\(\sum_{k=1}^{K}|C_k| = |D|\)。设特征 \(A\)\(n\) 个不同的取值 \({a_1, a_2, ..., a_n}\),根据特征 \(A\) 的取值将 \(D\) 划分为 \(n\) 个子集 \(D_1, D_2, ..., D_n\)\(|D_i|\)\(D_i\) 的样本个数,即 \(\sum_{i=1}^{n}|D_i| = |D|\)。记子集 \(D_i\) 中属于类 \(C_k\) 的样本集合为 \(D_{ik}\),即 \(D_{ik} = D_i \cap C_k\)\(|D_{ik}|\)\(D_{ik}\) 的样本个数。于是信息增益的算法如下

输入:训练数据集 \(D\) 和特征 \(A\)
输出:特征 \(A\) 对训练数据集 \(D\) 的信息增益 \(gain(D, A)\)

(1)计算数据集 \(D\) 的经验熵 \(H(D)\)

\[H(D) = -\sum_{k=1}^{K}\frac{|C_k|}{|D|}log_2 \frac{|C_k|}{D} \]

(2)计算特征 \(A\) 对数据集 \(D\) 的经验条件熵 \(H(D|A)\)

\[\begin{aligned} H(D|A) &= \sum_{i=1}^{n}p_i H(D|A=a_i) \\ &= \sum_{i=1}^{n}\frac{|D_i|}{|D|}H(D_i) \\ &= -\sum_{i=1}^{n}\frac{D_i}{D}\sum_{k=1}^{K}\frac{|D_{ik}|}{|D_i|}log_2 \frac{|D_{ik}|}{|D_i|} \end{aligned} \]

(3)计算信息增益

\[gain(D, A) = H(D) - H(D|A) \]

2.2 信息增益比

以信息增益作为划分训练数据集特征的准则,存在偏向于选择取值较多的特征的问题。使用信息增益比(information gain ratio)可以对这一问题进行校正。

特征 \(A\) 对训练数据集 \(D\) 的信息增益比 \(gain_R(D, A)\) 定义为其信息增益 \(gain(D, A)\) 与训练数据集 \(D\) 关于特征 \(A\) 的值的熵 \(H_A(D)\) 之比,即

\[gain_R(D, A) = \frac{gain(D, A)}{H_A(D)} \]

其中,\(H_A(D) = -\sum_{i=1}^{n}\frac{|D_i|}{|D|}log_2 \frac{|D_i|}{|D|}\)\(n\) 为特征 \(A\) 的取值的个数。

3 基尼指数

分类问题中,假设有 \(K\) 个类,样本点属于第 \(k\) 类的概率为 \(p_k\),则概率分布的基尼指数定义为

\[Gini(p) = \sum_{k=1}^{K}p_k(1-p_k) = 1 - \sum_{k=1}^{K}p_k^2 \]

对于给定的样本集合 \(D\),其基尼指数为

\[Gini(D) = 1 - \sum_{k=1}^{K}(\frac{|C_k|}{|D|})^2 \]

这里,\(C_k\)\(D\) 中属于第 \(k\) 类的样本子集,\(K\) 是类的个数。如果样本集合 \(D\) 根据特征 \(A\) 是否取某一可能值 \(a\) 被分割为 \(D_1\)\(D_2\) 两部分,即

\[D_1 = \left\{(x, y) \in D | A(x) = a \right\}, \quad D_2 = D - D_1 \]

则在特征 \(A\) 的条件下,集合 \(D\) 的基尼指数定义为

\[Gini(D, A) = \frac{D_1}{D}Gini(D_1) + \frac{D_2}{D}Gini(D_2) \]

基尼指数 \(Gini(D)\) 表示集合 \(D\) 的不确定性,基尼指数 \(Gini(D, A)\) 表示经 \(A = a\) 分割后集合 \(D\) 的不确定性。基尼指数值越大,样本集合的不确定性也就越大,这一点与熵相似。

参考

《统计学习方法》 李航

posted @ 2021-02-18 15:00  Hiidiot  阅读(712)  评论(0编辑  收藏  举报