1. 特征选择问题
下面是15个样本组成的贷款申请训练数据,含有4个特征。
- 年龄:青年、中年、老年
- 有工作:是、否
- 有自己房子:是、否
- 信贷情况:一般、好、非常好
如下图所示,如何选取一个特征有更好的分类效果?直观上,一个特征有更好的分类能力,或者说,按照这一特征将训练集分割成子集,使得各子集在当前条件下有最好的分类,那么就应该选择这个特征。信息增益(information gain)可以很好表示这一准则。参考-李航-统计学习方法
2. 信息增益
熵(entropy):表示随机变量不确定性的度量。设
X
X
X是一个取有限个值的随机变量,其概率分布为
P
(
X
=
x
i
)
=
p
i
i
=
1
,
2
,
⋯
,
n
P(X=x_i)=p_i \qquad i=1,2,\cdots,n
P(X=xi)=pii=1,2,⋯,n
则随机变量
X
X
X的熵定义为
H
(
p
)
=
−
∑
i
=
1
n
p
i
log
p
i
H(p)=-\sum_{i=1}^{n} p_{i} \log p_{i}
H(p)=−i=1∑npilogpi
由定义可知,熵只依赖于 X X X的分布,与 X X X的取值无关。熵越大,随机变量的不确定性就越大。
设有随机变量
(
X
,
Y
)
(X,Y)
(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} \qquad i=1,2,\cdots,n; \quad j=1,2,\cdots,m
P(X=xi,Y=yi)=piji=1,2,⋯,n;j=1,2,⋯,m
条件熵
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X) 表示在已知随机变量
X
X
X 的条件下随机变量
Y
Y
Y 的不确定性。定义为
X
X
X给定条件下
Y
Y
Y的条件概率分布的 熵 对
X
X
X的 数学期望,其中
p
i
=
P
(
X
=
x
i
)
,
i
=
1
,
2
,
⋯
,
n
p_i=P(X=x_i), \quad i=1,2,\cdots,n
pi=P(X=xi),i=1,2,⋯,n
H
(
Y
∣
X
)
=
∑
i
=
1
n
p
i
H
(
Y
∣
X
=
x
i
)
H(Y \mid X)=\sum_{i=1}^{n} p_{i} H\left(Y \mid X=x_{i}\right)
H(Y∣X)=i=1∑npiH(Y∣X=xi)
信息增益(information gain)表示得知特征 X X X 的信息而使得类 Y Y Y 的信息的不确定性减少的程度。
特征
A
A
A 对训练数据集
D
D
D 的信息增益
g
(
D
,
A
)
g(D,A)
g(D,A),定义为集合
D
D
D 的经验熵
H
(
D
)
H(D)
H(D) 与特征
A
A
A 给定条件下
D
D
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)
决策树 学习应用 信息增益准则 选择特征。
- 给定训练数据集 D D D, ∣ D ∣ |D| ∣D∣ 表示样本容量,即样本个数
- 设有 K K K个类 C k , k = 1 , 2 , ⋯ , K C_k, \quad k=1,2,\cdots, 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 A A 有 n n n 个不同的取值 { a 1 , a 2 , ⋯ , a n } \{a_1, a_2,\cdots,a_n\} {a1,a2,⋯,an},根据特征 A A A 的取值将 D D D 划分为 n n n 个子集, D 1 , D 2 , ⋯ , D n D_1, D_2,\cdots,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 \cap C_k Dik=Di∩Ck, ∣ D i k ∣ |D_{ik}| ∣Dik∣ 为 D i k D_{ik} Dik 的样本个数。
经验熵 H(D) 表示对数据集D 进行分类的不确定性,
H
(
D
)
=
−
∑
k
=
1
k
∣
C
k
∣
∣
D
∣
log
2
∣
C
k
∣
∣
D
∣
H(D)=-\sum_{k=1}^{k} \frac{\left|C_{k}\right|}{|D|} \log _{2} \frac{\left|C_{k}\right|}{|D|}
H(D)=−k=1∑k∣D∣∣Ck∣log2∣D∣∣Ck∣
经验条件熵 H(D|A) 表示在特征A 给定条件下对数据集D 进行分类的不确定性,
H
(
D
∣
A
)
=
∑
i
=
1
n
∣
D
i
∣
∣
D
∣
H
(
D
i
)
=
−
∑
i
=
1
n
∣
D
i
∣
∣
D
∣
∑
k
=
1
K
∣
D
i
k
∣
∣
D
i
∣
log
2
∣
D
i
k
∣
∣
D
i
∣
H(D \mid A)=\sum_{i=1}^{n} \frac{\left|D_{i}\right|}{|D|} H\left(D_{i}\right)=-\sum_{i=1}^{n} \frac{\left|D_{i}\right|}{|D|} \sum_{k=1}^{K} \frac{\left|D_{i k}\right|}{\left|D_{i}\right|} \log _{2} \frac{\left|D_{i k}\right|}{\left|D_{i}\right|}
H(D∣A)=i=1∑n∣D∣∣Di∣H(Di)=−i=1∑n∣D∣∣Di∣k=1∑K∣Di∣∣Dik∣log2∣Di∣∣Dik∣
信息增益 g(D,A) 为前两者之差,表示由于特征A 而使得对数据集D 的分类的不确定性减少的程度, g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)−H(D∣A)。
信息增益准则的特征选择方法,对训练数据集(或子集) D D D,计算其每个特征的信息增益,并比较它们的大小,选择信息增益最大的特征。
2.1 信息增益选择最优特征 实例
根据章节1中的贷款申请样本数据表进行计算最优特征
-
计算数据集D 的
经验熵H(D)
,有两类,6个数据为否
,9个为是
H ( D ) = − 9 15 log 2 9 15 − 6 15 log 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 ) + 5 15 H ( D 3 ) ] = 0.971 − [ 5 15 ( − 2 5 log 2 2 5 − 3 5 log 2 3 5 ) + 5 15 ( − 3 5 log 2 3 5 − 2 5 log 2 2 5 ) + 5 15 ( − 4 5 log 2 4 5 − 1 5 log 2 1 5 ) ] = 0.971 − 0.888 = 0.083 \begin{aligned} g\left(D, A_{1}\right)&=H(D)-\left[\frac{5}{15} H\left(D_{1}\right)+\frac{5}{15} H\left(D_{2}\right)+\frac{5}{15} H\left(D_{3}\right)\right] \\ &=0.971-\left[\frac{5}{15}\left(-\frac{2}{5} \log _{2} \frac{2}{5}-\frac{3}{5} \log _{2} \frac{3}{5}\right)+\frac{5}{15}\left(-\frac{3}{5} \log _{2} \frac{3}{5}-\frac{2}{5} \log _{2} \frac{2}{5}\right)+\frac{5}{15}\left(-\frac{4}{5} \log _{2} \frac{4}{5}-\frac{1}{5} \log _{2} \frac{1}{5}\right)\right] \\ &=0.971-0.888 = 0.083 \end{aligned} g(D,A1)=H(D)−[155H(D1)+155H(D2)+155H(D3)]=0.971−[155(−52log252−53log253)+155(−53log253−52log252)+155(−54log254−51log251)]=0.971−0.888=0.083
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 log 2 4 10 − 6 10 log 2 6 10 ) ] = 0.324 \begin{aligned} g\left(D, A_{2}\right)&=H(D)-\left[\frac{5}{15} H\left(D_{1}\right)+\frac{10}{15} H\left(D_{2}\right)\right] \\ &=0.971-\left[\frac{5}{15} \times 0+\frac{10}{15}\left(-\frac{4}{10} \log _{2} \frac{4}{10}-\frac{6}{10} \log _{2} \frac{6}{10}\right)\right] \\ &=0.324 \end{aligned} 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 log 2 3 9 − 6 9 log 2 6 9 ) ] = 0.971 − 0.551 = 0.420 \begin{aligned} g\left(D, A_{3}\right)&=0.971-\left[\frac{6}{15} \times 0+\frac{9}{15}\left(-\frac{3}{9} \log _{2} \frac{3}{9}-\frac{6}{9} \log _{2} \frac{6}{9}\right)\right]=0.971-0.551=0.420 \end{aligned} 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 \begin{aligned} g(D,A_4)=0.971-0.608=0.363 \end{aligned} g(D,A4)=0.971−0.608=0.363
特征 A 3 A_3 A3(有自己的房子)的信息增益最大,选择 A 3 A_3 A3 作为最优特征。
2.2 ID3 算法
ID3算法:在决策树递归构建过程中,使用 信息增益 的方法进行特征选择。
决策树生成过程:参考链接-机器学习课程-温州大学-决策树
- 初始化特征集合和数据集合;
- 计算数据集合信息熵和所有特征的条件熵,选择信息增益最大的特征作为当前决策节点;
- 更新数据集合和特征集合(删除上一步使用的特征,并按照特征值来划分不同分支的数据集合);
- 重复 2,3 两步,若子集值包含单一特征,则为分支叶子节点。
3. GBDT
GBDT
的全称是Gradient Boosting Decision Tree,梯度提升决策树。GBDT是通过采用 加法模型(即基函数的线性组合),以及不断减小训练过程产生的残差来达到将数据 分类 或者 回归 的算法。
为什么选择决策树作为基学习器?
- 决策树可以认为是if-then规则的集合,易于理解,可解释性强,预测速度快;
- 决策树算法相比于其他的算法需要更少的特征工程,比如可以不用做特征标准化,可以很好的处理字段缺失的数据,也可以不用关心特征间是否相互依赖等;
- 决策树能够自动组合多个特征。
GBDT 优点
- 可以灵活处理各种类型的数据,包括连续值和离散值;
- 在相对少的调参时间情况下,预测的准确率也可以比较高;
- 使用一些健壮的损失函数,对异常值的鲁棒性非常强。
GBDT 缺点
由于弱学习器之间存在依赖关系,难以并行进行训练数据。不过可以采用自采样的SGBT
来达到部分并行。
附录
参考链接 - 深度之眼 机器学习寒假训练营
参考链接 - 黄海广 - 机器学习课程-温州大学-07决策树
参考链接 - 黄海广 - 机器学习课程-温州大学-08集成学习