在划分数据集之前之后信息发生的变化叫做信息增益,为了说明白信息增益得先知道什么是信息,什么是熵
熵
熵(约翰·冯·诺依曼起的名),定义为信息的期望。那么设X为有限个离散的随机变量,其概率分布为:
P
(
X
=
x
i
)
=
p
i
,
i
=
1
,
2
,
…
,
n
{\rm{P(X = }}{{\rm{x}}_i}{\rm{) = }}{{\rm{p}}_i},i = 1,2, \ldots ,n
P(X=xi)=pi,i=1,2,…,n
随机变量X的熵即为:
H
(
X
)
=
−
∑
i
=
1
n
p
i
log
p
i
H(X) = - \sum\limits_{i = 1}^n {{p_i}\log {p_i}}
H(X)=−i=1∑npilogpi
信息增益
接下来就可以谈谈信息增益了,定义是这样说的:
特征A对训练数据集D的信息增益G(X,A),定义为集合D的经验熵H(D)与特征A给定D的经验条件熵H(D|A)之差即:
g
(
X
,
x
i
)
=
H
(
X
)
−
H
(
X
∣
x
i
)
g(X,{{\rm{x}}_i}) = H(X) - H(X|{{\rm{x}}_i})
g(X,xi)=H(X)−H(X∣xi)
划分数据集
选择信息增益最大的特征
那要怎么与之前的信息增益结合起来呢?
比如当以某一个数据(
X
i
{X_i}
Xi)划分数据集后分为两个子数据集,计算两个子数据集的熵再乘以各自长度占比后求和(此时即为
H
(
X
∣
x
i
)
H(X|{{\rm{x}}_i})
H(X∣xi)),遍历所有i并计算何时信息增益最大即可
还有一种方式是用Gini指标,下次再更~