决策树

1. 特征选择问题

  下面是15个样本组成的贷款申请训练数据,含有4个特征。

  1. 年龄:青年、中年、老年
  2. 有工作:是、否
  3. 有自己房子:是、否
  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=1npilogpi

由定义可知,熵只依赖于 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(YX) 表示在已知随机变量 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(YX)=i=1npiH(YX=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(DA)之差。
g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA)


决策树 学习应用 信息增益准则 选择特征。

  • 给定训练数据集 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=1KCk=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=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 \cap C_k Dik=DiCk ∣ 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=1kDCklog2DCk

经验条件熵 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(DA)=i=1nDDiH(Di)=i=1nDDik=1KDiDiklog2DiDik

信息增益 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(DA)

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

2.1 信息增益选择最优特征 实例

根据章节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)=159log2159156log2156=0.971

  2. 计算各特征 对数据集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(52log25253log253)+155(53log25352log252)+155(54log25451log251)]=0.9710.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(104log2104106log2106)]=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(93log29396log296)]=0.9710.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.9710.608=0.363

特征 A 3 A_3 A3(有自己的房子)的信息增益最大,选择 A 3 A_3 A3 作为最优特征。

2.2 ID3 算法

ID3算法:在决策树递归构建过程中,使用 信息增益 的方法进行特征选择。
决策树生成过程:参考链接-机器学习课程-温州大学-决策树

  1. 初始化特征集合和数据集合;
  2. 计算数据集合信息熵和所有特征的条件熵,选择信息增益最大的特征作为当前决策节点;
  3. 更新数据集合和特征集合(删除上一步使用的特征,并按照特征值来划分不同分支的数据集合);
  4. 重复 2,3 两步,若子集值包含单一特征,则为分支叶子节点。

3. GBDT

GBDT的全称是Gradient Boosting Decision Tree,梯度提升决策树。GBDT是通过采用 加法模型(即基函数的线性组合),以及不断减小训练过程产生的残差来达到将数据 分类 或者 回归 的算法。

  为什么选择决策树作为基学习器?

  1. 决策树可以认为是if-then规则的集合,易于理解,可解释性强,预测速度快;
  2. 决策树算法相比于其他的算法需要更少的特征工程,比如可以不用做特征标准化,可以很好的处理字段缺失的数据,也可以不用关心特征间是否相互依赖等;
  3. 决策树能够自动组合多个特征。

GBDT 优点

  1. 可以灵活处理各种类型的数据,包括连续值和离散值;
  2. 在相对少的调参时间情况下,预测的准确率也可以比较高;
  3. 使用一些健壮的损失函数,对异常值的鲁棒性非常强。

GBDT 缺点
  由于弱学习器之间存在依赖关系,难以并行进行训练数据。不过可以采用自采样的SGBT来达到部分并行。

附录

  1. ROC曲线的理解

  2. XGBoost & lightBGM


参考链接 - 深度之眼 机器学习寒假训练营
参考链接 - 黄海广 - 机器学习课程-温州大学-07决策树
参考链接 - 黄海广 - 机器学习课程-温州大学-08集成学习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值