码迷,mamicode.com
首页 > 其他好文 > 详细

信息熵与基尼指数

时间:2021-02-19 13:40:50      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:准则   选择   line   cap   关于   condition   离散   splay   block   

本文主要是对信息熵、信息增益、信息增益比和 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.
对于后一个不等式,按照定义,当 \(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} \]

条件熵

设有随机变量 \((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)\)

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

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

  1. 计算特征 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} \]

  1. 计算信息增益

\[gain(D, A) = H(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 的不确定性。基尼指数值越大,样本集合的不确定性也就越大,这一点与熵相似。

参考

《统计学习方法》 李航

信息熵与基尼指数

标签:准则   选择   line   cap   关于   condition   离散   splay   block   

原文地址:https://www.cnblogs.com/shaocf/p/14411844.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!