特征选择
1. 特征选择问题
特征选择在于选取对训练数据具有分类能力的特征。这样可以提高决策树学习的效率。如果利用一个特征进行分类的结果与随机分类的结果没有很大差别,则称这个特征是没有分类能力的。经验上扔掉这样的特征对决策树学习的精度影响不大。通常特征选择的准则是信息增益或信息增益比。
特征选择时决定是决定用哪个特征来划分特征空间。
**例1:**15个样本组成的贷款申请训练数据。贷款申请人有4个特征(年龄、有工作、有房子、借贷情况)。
数据学习到的两个可能的决策树,分别由两个不同特征的根结点构成。图(a)的根结点的特征是年龄,有3个取值,对应于不同的取值有不同的子结点。图(b)所示的根结点的特征是有工作,有2个取值,对应于不同的取值有不同的子结点。两个决策树都可以从此延续下去。问题是:究竟选择哪个特征更好些?这就要求确定选择特征的准则。直观上,如果一个特征具有更好的分类能力,或者说,按照这一特征将训练数据集分割成子集,使得各个子集在当前条件下有最好的分类,那么就更应该选择这个特征。信息增益(information gain)能表达着直观的准则。
2. 信息增益
在信息论与概率统计中,熵(entropy)是表示随机变量不确定性的度量。设
X
X
X是一个取有限个值的离散随机变量,其概率分布为
P
(
X
=
x
i
)
=
p
i
,
i
=
1
,
2
,
.
.
.
,
n
P(X=x_i)=p_i, \quad i=1,2,...,n
P(X=xi)=pi,i=1,2,...,n
则随机变量X的熵定义为
H
(
X
)
=
−
∑
i
=
1
n
p
i
l
o
g
p
i
(1)
H(X)=-\sum_{i=1}^np_ilogp_i \tag{1}
H(X)=−i=1∑npilogpi(1)
若
p
i
=
0
p_i=0
pi=0,则定义
0
l
o
g
0
=
0
0log0=0
0log0=0。通常式(1)中的对数以2为底或e为底(自然对数),这时熵的单位分别称为比特(bit)或纳特(nat)。由定义知,熵只依赖与X的分布,而与X的取值无关,所以也可将X的熵记作
H
(
p
)
H(p)
H(p),即
H
(
p
)
=
−
∑
i
=
1
n
p
i
l
o
g
p
i
H(p)=-\sum_{i=1}^np_ilogp_i
H(p)=−i=1∑npilogpi
熵越大,随机变量的不确定性就越大。从定义可验证
0
≤
H
(
p
)
≤
l
o
g
n
0\leq H(p)\leq logn
0≤H(p)≤logn
当随机变量只取两个值,例如1,0时,即X的分布为
P
(
X
=
1
)
=
p
,
P
(
X
=
0
)
=
1
−
p
,
0
≤
p
≤
1
P(X=1)=p,\quad P(X=0)=1-p, \quad 0\leq p\leq 1
P(X=1)=p,P(X=0)=1−p,0≤p≤1
熵为
H
(
p
)
=
−
p
l
o
g
2
p
−
(
1
−
p
)
l
o
g
2
(
1
−
p
)
H(p)=-plog_2p-(1-p)log_2(1-p)
H(p)=−plog2p−(1−p)log2(1−p)
这时,熵
H
(
p
)
H(p)
H(p)随概率p变化的曲线如下图(单位为比特),是分布为贝努利分布时熵与概率的关系
当p=0或p=1时 H ( p ) = 0 H(p)=0 H(p)=0,随机变量完全没有不确定性。当 p = 0.5 p=0.5 p=0.5时, H ( p ) = 1 H(p)=1 H(p)=1,熵取值最大,随机变量不确定最大。
设有随机变量(X,Y),其联合概率分布为
P
(
X
=
x
i
,
Y
=
y
i
)
=
p
i
j
,
i
=
1
,
2
,
.
.
.
,
n
;
j
=
1
,
2
,
.
.
.
,
m
P(X=x_i,Y=y_i)=p_{ij}, \quad i=1,2,...,n; \quad j=1,2,...,m
P(X=xi,Y=yi)=pij,i=1,2,...,n;j=1,2,...,m
条件熵
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X)表示在已知随机变量X的条件下随机变量Y的不确定性。随机变量X给定的条件下随机变量Y的条件熵(conditional entropy)
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X),定义为X给定条件下Y的条件概率分布的熵对X的数学期望
H
(
Y
∣
X
)
=
∑
i
=
1
n
p
i
H
(
Y
∣
X
=
x
i
)
H(Y|X)=\sum_{i=1}^np_iH(Y|X=x_i)
H(Y∣X)=i=1∑npiH(Y∣X=xi)
这里,
p
i
=
P
(
X
=
x
i
)
,
i
=
1
,
2
,
.
.
.
,
n
p_i=P(X=x_i),\quad i=1,2,...,n
pi=P(X=xi),i=1,2,...,n
当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵与条件熵分别称为经验熵(empirical entropy)和经验条件熵(empirical conditional entropy)。此时,如果有0概率,令 0 l o g 0 = 0 0log0=0 0log0=0。
信息增益(information gain)表示得知特征X的信息而使得类Y的信息的不确定性减少的程度。
**定义(信息增益):**特征A对训练数据集D的信息增益
g
(
D
,
A
)
g(D,A)
g(D,A),定义为集合D的经验熵
H
(
D
)
H(D)
H(D)与特征A给定条件下D的经验条件熵
H
(
D
∣
A
)
H(D|A)
H(D∣A)之差,即
g
(
D
,
A
)
=
H
(
D
)
−
H
(
D
∣
A
)
g(D,A)=H(D)-H(D|A)
g(D,A)=H(D)−H(D∣A)
一般地,熵
H
(
Y
)
H(Y)
H(Y)与条件熵
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X)之差称为互信息(mutual information)。决策树学习中的信息增益等价于训练数据集中类与特征的互信息。
决策树学习应用信息增益准则选择特征。给定训练数据集D和特征A,经验熵 H ( D ) H(D) H(D)表示对数据集D进行分类的不确定性。而经验条件熵 H ( D ∣ A ) H(D|A) H(D∣A)表示在特征A给定的条件下对数据集D进行分类的不确定性,那么它们的差,即信息增益,就表示由于特征A而使得对数据集D的分类的不确定性减少程度。显然,对于数据D而言,信息增益依赖与特征,不同的特征往往具有不同的信息增益。信息增益大的特征具有更强的分类能力。
根据信息增益准则的特征选择方法:对训练数据集(或子集)D,计算其每个特征的信息增益,并比较它们的大小,选择信息增益最大化的特征。
设训练数据集D,|D|表示其样本容量,即样本个数。设有K个类 C k , k = 1 , 2 , . . . , K C_k,k=1,2,...,K Ck,k=1,2,...,K, ∣ C k ∣ |C_k| ∣Ck∣为属于类 C k C_k Ck的样本个数, ∑ k = 1 K ∣ C k ∣ = ∣ D ∣ \sum_{k=1}^K|C_k|=|D| ∑k=1K∣Ck∣=∣D∣。设特征A有n个不同的取值 { a 1 , a 2 , . . . , a n } \{a_1,a_2,...,a_n\} {a1,a2,...,an},根据特征A的取值将D划分为n个子集 D 1 , D 2 , . . . , D n D_1,D_2,...,D_n D1,D2,...,Dn, ∣ D i ∣ |D_i| ∣Di∣为 D i D_i Di的样本个数, ∑ i = 1 n ∣ D i ∣ = ∣ D ∣ \sum_{i=1}^n|D_i|=|D| ∑i=1n∣Di∣=∣D∣。设子集 D i D_i Di中属于类 C k C_k Ck的样本的集合为 D i k D_{ik} Dik,即 D i k = D i ⋂ C k D_{ik}=D_i \bigcap C_k Dik=Di⋂Ck, ∣ D i k ∣ |D_{ik}| ∣Dik∣为 D i k D_{ik} Dik的样本个数。于是信息增益的算法如下:
算法:信息增益的算法
输入:训练数据集D和特征A;
输出:特征A对训练数据集D的信息增益 g ( D , A ) g(D,A) g(D,A)。
(1)计算数据集D的经验熵
H
(
D
)
H(D)
H(D)
H
(
D
)
=
−
∑
k
=
1
K
∣
C
k
∣
∣
D
∣
l
o
g
2
∣
C
k
∣
∣
D
∣
H(D)=-\sum_{k=1}^K\frac{|C_k|}{|D|}log_2\frac{|C_k|}{|D|}
H(D)=−k=1∑K∣D∣∣Ck∣log2∣D∣∣Ck∣
(2)计算特征A对数据集D的经验条件熵
H
(
D
∣
A
)
H(D|A)
H(D∣A)
H
(
D
∣
A
)
=
∑
i
=
1
n
∣
D
i
∣
∣
D
∣
H
(
D
i
)
=
−
∑
l
=
1
n
∣
D
i
∣
∣
D
∣
∑
k
=
1
K
∣
D
i
k
∣
∣
D
i
∣
l
o
g
2
∣
D
i
k
∣
∣
D
i
∣
H(D|A)=\sum_{i=1}^n\frac{|D_i|}{|D|}H(D_i)=-\sum_{l=1}^n\frac{|D_i|}{|D|}\sum_{k=1}^K\frac{|D_{ik}|}{|D_i|}log_2\frac{|D_{ik}|}{|D_i|}
H(D∣A)=i=1∑n∣D∣∣Di∣H(Di)=−l=1∑n∣D∣∣Di∣k=1∑K∣Di∣∣Dik∣log2∣Di∣∣Dik∣
(3)计算信息增益
g
(
D
,
A
)
=
H
(
D
)
−
H
(
D
∣
A
)
g(D,A)=H(D)-H(D|A)
g(D,A)=H(D)−H(D∣A)
**例2:**对例1所给的训练数据集D,根据信息增益准则选择最优特征。
**解:**首先计算经验熵
H
(
D
)
H(D)
H(D)。
H
(
D
)
=
−
9
15
l
o
g
2
9
15
−
6
15
l
o
g
2
6
15
=
0.971
H(D)=-\frac{9}{15}log_2\frac{9}{15}-\frac{6}{15}log_2\frac{6}{15}=0.971
H(D)=−159log2159−156log2156=0.971
然后计算各特征对数据集D的信息增益。分别以
A
1
,
A
2
,
A
3
,
A
4
A_1,A_2,A_3,A_4
A1,A2,A3,A4表示年龄、有工作、有自己的房子和信贷情况4个特征,则
g
(
D
,
A
1
)
=
H
(
D
)
−
[
5
15
H
(
D
1
)
+
5
15
H
(
D
2
)
+
H
(
D
3
)
]
=
0.971
−
[
5
15
(
−
2
5
l
o
g
2
2
5
−
3
5
l
o
g
2
3
5
)
+
5
15
(
−
3
5
l
o
g
2
3
5
−
2
5
l
o
g
2
2
5
)
+
5
15
(
−
4
5
l
o
g
2
4
5
−
1
5
l
o
g
2
1
5
)
]
=
0.971
−
0.888
=
0.083
g(D,A_1)=H(D)-[\frac{5}{15}H(D_1)+\frac{5}{15}H(D_2)+H(D_3)] \\=0.971-[\frac{5}{15}(-\frac{2}{5}log_2\frac{2}{5}-\frac{3}{5}log_2\frac{3}{5})+\frac{5}{15}(-\frac{3}{5}log_2\frac{3}{5}-\frac{2}{5}log_2\frac{2}{5})+\frac{5}{15}(-\frac{4}{5}log_2\frac{4}{5}-\frac{1}{5}log_2\frac{1}{5})] \\=0.971-0.888=0.083
g(D,A1)=H(D)−[155H(D1)+155H(D2)+H(D3)]=0.971−[155(−52log252−53log253)+155(−53log253−52log252)+155(−54log254−51log251)]=0.971−0.888=0.083
这里
D
1
,
D
2
,
D
3
D_1,D_2,D_3
D1,D2,D3分别是D中
A
1
A_1
A1(年龄)取值为青年、中年和老年的样本子集。类似地
g
(
D
,
A
2
)
=
H
(
D
)
−
[
5
15
H
(
D
1
)
+
10
15
H
(
D
2
)
]
=
0.971
−
[
5
15
×
0
+
10
15
(
−
4
10
l
o
g
2
4
10
−
6
10
l
o
g
2
6
10
)
]
=
0.324
g(D,A_2)=H(D)-[\frac{5}{15}H(D_1)+\frac{10}{15}H(D_2)] \\=0.971-[\frac{5}{15}\times 0+\frac{10}{15}(-\frac{4}{10}log_2\frac{4}{10}-\frac{6}{10}log_2\frac{6}{10})]=0.324
g(D,A2)=H(D)−[155H(D1)+1510H(D2)]=0.971−[155×0+1510(−104log2104−106log2106)]=0.324
g ( D , A 3 ) = 0.971 − [ 6 15 × 0 + 9 15 ( − 3 9 l o g 2 3 9 − 6 9 l o g 2 6 9 ) ] = 0.971 − 0.551 = 0.420 g(D,A_3)=0.971-[\frac{6}{15}\times 0+\frac{9}{15}(-\frac{3}{9}log_2\frac{3}{9}-\frac{6}{9}log_2\frac{6}{9})] \\=0.971-0.551=0.420 g(D,A3)=0.971−[156×0+159(−93log293−96log296)]=0.971−0.551=0.420
g ( D , A 4 ) = 0.971 − 0.608 = 0.363 g(D,A_4)=0.971-0.608=0.363 g(D,A4)=0.971−0.608=0.363
最后,比较各特征的信息增益值。由于特征 A 3 A_3 A3(有自己的房子)的信息增益值最大,所以选择特征 A 3 A_3 A3作为最优特征。
3. 信息增益比
信息增益值的大小是相对于训练数据而言的,并没有绝对意义。在分类问题困难时,也就是在训练数据集的经验熵大的时候,信息增益值会偏大。反之,信息增益值会偏小。使用信息增益比(information gain ratio)可以对这一问题进行校正。这是特征选择的另一准则。
**信息增益比:**特征A对训练数据集D的信息增益比
g
R
(
D
,
A
)
g_R(D,A)
gR(D,A)定义为其信息增益
g
(
D
,
A
)
g(D,A)
g(D,A)与训练数据集D的经验熵
H
(
D
)
H(D)
H(D)之比:
g
R
(
D
,
A
)
=
g
(
D
,
A
)
H
(
D
)
g_R(D,A)=\frac{g(D,A)}{H(D)}
gR(D,A)=H(D)g(D,A)