信息熵、信息增益与基尼系数的基本概念及其衡量数据集纯度的原理
1. 信息熵(Entropy)
信息熵是衡量数据集纯度或不确定性的重要指标,是基于信息论提出的概念,描述了一个系统的混乱程度或随机性。
- 公式:
H ( D ) = − ∑ i = 1 n p i log 2 p i H(D) = -\sum_{i=1}^n p_i \log_2 p_i H(D)=−i=1∑npilog2pi
其中:
-
p
i
p_i
pi是数据集中第
i
i
i类的概率(即第
i
i
i类样本数占总样本数的比例)。
-
n
n
n是类别的总数。
-
理解信息熵:
- 当数据集中的所有样本都属于同一个类别时,信息熵为 0(即完全纯)。
- 当样本在所有类别中均匀分布时,信息熵最大(即完全不纯)。
- 因此,信息熵衡量了数据集中类别分布的混乱程度。
-
示例:
假设一个数据集有两类,类别 A 和类别 B:- 如果数据全是类别 A(100%),则 H ( D ) = − 1 ⋅ log 2 ( 1 ) = 0 H(D) = -1 \cdot \log_2(1) = 0 H(D)=−1⋅log2(1)=0。
- 如果数据各占 50%,即
p
A
=
0.5
,
p
B
=
0.5
p_A = 0.5, p_B = 0.5
pA=0.5,pB=0.5,则:
H ( D ) = − 0.5 log 2 ( 0.5 ) − 0.5 log 2 ( 0.5 ) = 1 H(D) = -0.5 \log_2(0.5) - 0.5 \log_2(0.5) = 1 H(D)=−0.5log2(0.5)−0.5log2(0.5)=1
这表明信息熵越高,数据集越不纯。
2. 信息增益(Information Gain)
信息增益衡量的是通过某个特征对数据集进行划分后,数据纯度的提升程度。它是决策树划分特征的关键指标之一。
- 公式:
I G ( D , A ) = H ( D ) − ∑ v ∈ Values ( A ) ∣ D v ∣ ∣ D ∣ H ( D v ) IG(D, A) = H(D) - \sum_{v \in \text{Values}(A)} \frac{|D_v|}{|D|} H(D_v) IG(D,A)=H(D)−v∈Values(A)∑∣D∣∣Dv∣H(Dv)
其中:
-
H
(
D
)
H(D)
H(D):划分前数据集
D
D
D的信息熵。
-
A
A
A:用于划分的特征。
-
D
v
D_v
Dv:根据特征
A
A
A的值
v
v
v划分出的子数据集。
-
∣
D
v
∣
∣
D
∣
\frac{|D_v|}{|D|}
∣D∣∣Dv∣:子数据集
D
v
D_v
Dv的权重(占总数据集的比例)。
-
信息增益的意义:
信息增益反映了某个特征对数据集的划分是否有效:- 如果划分后数据纯度显著提升(即每个子集的熵显著降低),信息增益较大。
- 如果划分后数据纯度没有明显提升,信息增益较小。
-
示例:
假设有一个数据集 D D D,熵 H ( D ) = 1 H(D) = 1 H(D)=1,根据特征 A A A划分为两个子集:- 子集 1 的熵为 0,子集 2 的熵为 0.5,且分别包含 40% 和 60% 的样本。
- 则信息增益为:
I G ( D , A ) = 1 − ( 0.4 ⋅ 0 + 0.6 ⋅ 0.5 ) = 1 − 0.3 = 0.7 IG(D, A) = 1 - (0.4 \cdot 0 + 0.6 \cdot 0.5) = 1 - 0.3 = 0.7 IG(D,A)=1−(0.4⋅0+0.6⋅0.5)=1−0.3=0.7
这表明特征 A A A有效地降低了数据的不确定性。
3. 基尼系数(Gini Index)
基尼系数是另一个衡量数据集纯度的指标,主要用于 CART(分类回归树)算法中。
- 公式:
G ( D ) = 1 − ∑ i = 1 n p i 2 G(D) = 1 - \sum_{i=1}^n p_i^2 G(D)=1−i=1∑npi2
其中:
-
p
i
p_i
pi是第
i
i
i类的概率。
-
理解基尼系数:
- 如果所有样本属于同一类别(纯度最高),则基尼系数为 0。
- 如果样本均匀分布于所有类别中(纯度最低),则基尼系数接近最大值。
-
示例:
假设一个数据集有两类,类别 A 和类别 B:- 如果数据全是类别 A(100%),则 G ( D ) = 1 − 1 2 = 0 G(D) = 1 - 1^2 = 0 G(D)=1−12=0。
- 如果数据各占 50%,即
p
A
=
0.5
,
p
B
=
0.5
p_A = 0.5, p_B = 0.5
pA=0.5,pB=0.5,则:
G ( D ) = 1 − ( 0. 5 2 + 0. 5 2 ) = 0.5 G(D) = 1 - (0.5^2 + 0.5^2) = 0.5 G(D)=1−(0.52+0.52)=0.5
因此,基尼系数越小,数据集的纯度越高。
信息熵、信息增益和基尼系数衡量纯度的原因
-
衡量数据的不确定性:
- 信息熵和基尼系数都从概率分布的角度量化了数据集中的混乱程度。
- 当一个类别的概率占比接近 1 时,熵和基尼系数会接近 0,表明数据集纯度高。
- 当所有类别的概率接近均匀分布时,熵和基尼系数较高,表明数据纯度低。
-
分裂效果的评估:
- 信息增益通过比较划分前后的信息熵,评估特征是否有效地降低了不确定性。
- 基尼系数直接用来选择特征,倾向于生成“较大类别占优”的分割,使数据纯度提高。
-
数学性质支持纯度的衡量:
- 信息熵的对数函数和基尼系数的平方函数都是凸函数,这使得它们对数据的混乱程度敏感。
- 这些指标在数值上明确反映了“纯度”和“混乱”的变化。
信息熵与基尼系数的比较
指标 | 信息熵 | 基尼系数 |
---|---|---|
性质 | 基于信息论,考虑概率分布的全局特性。 | 基于类别分布,强调主类别的概率。 |
取值范围 | [ 0 , log 2 ( n ) ] [0, \log_2(n)] [0,log2(n)] | [ 0 , 0.5 ] [0, 0.5] [0,0.5](对于两类问题) |
计算复杂度 | 需要计算对数,计算稍微复杂。 | 不涉及对数,计算简单。 |
倾向性 | 对少数类别的变化更敏感,适合处理复杂分布的数据。 | 更倾向于大类别占优的划分,适合快速生成二叉树。 |
- 信息熵 衡量了数据集的不确定性,其信息增益用于评估特征划分后数据纯度的提升,是 ID3 决策树的核心。
- 基尼系数 衡量了数据集的不纯度,计算简单,适合 CART 算法。
- 这些指标能够衡量纯度的本质在于:它们通过概率分布来描述数据集中类别的分散程度,数值越小,表明数据集越纯(即大部分样本属于同一类别)。