本文主要是对信息熵、信息增益、信息增益比和 Gini 指数的定义进行汇总,使之更加明确记忆。
信息熵和条件熵
信息熵
熵(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.
\[-\sum_{i=1}^{n}p_i \log p_i \le -\sum_{i=1}^{n}\frac{1}{n} log{\frac{1}{n}} = logn \]对于后一个不等式,按照定义,当 \(X\) 的取值概率相等且 \(p_i=\frac{1}{n}\) 时,不确定性最大。即
\[\begin{align} 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{align} \]令一种方法,根据琴生不等式
条件熵
设有随机变量 \((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)。
信息增益与信息增益比
信息增益
信息增益表示得知特征 \(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)\)
- 计算数据集 D 的经验熵 \(H(D)\)
- 计算特征 A 对数据集 D 的经验条件熵 \(H(D|A)\)
- 计算信息增益
信息增益比
以信息增益作为划分训练数据集特征的准则,存在偏向于选择取值较多的特征的问题。使用信息增益比(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 的取值的个数。
基尼指数
分类问题中,假设有 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 的不确定性。基尼指数值越大,样本集合的不确定性也就越大,这一点与熵相似。
参考
《统计学习方法》 李航