决策树(二)|特征选择 + 信息熵 +信息增益 / 信息增益比 | 《统计学习方法》学习笔记(十八)

特征选择

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=1npilogpi(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=1npilogpi
熵越大,随机变量的不确定性就越大。从定义可验证
0 ≤ H ( p ) ≤ l o g n 0\leq H(p)\leq logn 0H(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)=1p,0p1
熵为
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(1p)log2(1p)
这时,熵 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(YX)表示在已知随机变量X的条件下随机变量Y的不确定性。随机变量X给定的条件下随机变量Y的条件熵(conditional entropy) H ( Y ∣ X ) H(Y|X) H(YX),定义为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(YX)=i=1npiH(YX=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(DA)之差,即
g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA)
一般地,熵 H ( Y ) H(Y) H(Y)与条件熵 H ( Y ∣ X ) H(Y|X) H(YX)之差称为互信息(mutual information)。决策树学习中的信息增益等价于训练数据集中类与特征的互信息。

决策树学习应用信息增益准则选择特征。给定训练数据集D和特征A,经验熵 H ( D ) H(D) H(D)表示对数据集D进行分类的不确定性。而经验条件熵 H ( D ∣ A ) H(D|A) H(DA)表示在特征A给定的条件下对数据集D进行分类的不确定性,那么它们的差,即信息增益,就表示由于特征A而使得对数据集D的分类的不确定性减少程度。显然,对于数据D而言,信息增益依赖与特征,不同的特征往往具有不同的信息增益。信息增益大的特征具有更强的分类能力。

根据信息增益准则的特征选择方法:对训练数据集(或子集)D,计算其每个特征的信息增益,并比较它们的大小,选择信息增益最大化的特征。

设训练数据集D,|D|表示其样本容量,即样本个数。设有K个类 C k , k = 1 , 2 , . . . , K C_k,k=1,2,...,K Ckk=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=1KCk=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=1nDi=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=DiCk ∣ 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=1KDCklog2DCk
(2)计算特征A对数据集D的经验条件熵 H ( D ∣ A ) H(D|A) H(DA)
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(DA)=i=1nDDiH(Di)=l=1nDDik=1KDiDiklog2DiDik
(3)计算信息增益
g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA)
**例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)=159log2159156log2156=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(52log25253log253)+155(53log25352log252)+155(54log25451log251)]=0.9710.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(104log2104106log2106)]=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(93log29396log296)]=0.9710.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.9710.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)

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值