机器学习——决策树

1、决策树简介

决策树是一种树形结构,是一颗由多个判断节点组成的树,每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。
在这里插入图片描述
它是一种非参数学习算法,用来解决分类问题。

2、节点特征选择:信息熵、信息增益、信息增益比和基尼系数

直观理解信息量和信息熵的含义
信息:

我们日常接收的视频、微信和图文都是信息,但不是每个信息都是真的,而我们需要去评价真假。特别是针对某件事情,不同的信息就能影响我们对这件事情的判断。

信息量 I I I

利用概率来衡量信息对特定事件的价值。当特定事件发生的概率越小时,某信息帮我们排除这个事件不确定性(即不发生的概率),则该信息价值越大,即信息量越大。公式如下:
I = − log ⁡ 2 ( p ) I=-\log_2(p) I=log2(p)

信息熵H(X):

一个系统内发生某个事件时,能给你带来信息量的期望。当这个系统内的小概率事件越多,则信息熵越大。它是信息量的数学期望。公式如下:
H ( X ) = ∑ i = 1 n p i I ( x ) = − ∑ i = 1 n p i log ⁡ 2 ( p i ) H(X) = \sum_{i=1}^{n}p_iI(x) = - \sum_{i=1}^{n}p_i\log_2(p_i) H(X)=i=1npiI(x)=i=1npilog2(pi)
数据不确定性越大,则信息熵越大;数据不确定性越小,则信息熵越小。

实例1:假如有三个类别,分别占比为:{1/3,1/3,1/3},信息熵计算结果为:

H = − 3 × 1 3 log ⁡ 2 ( 1 3 ) = 1.0986 H = -3×\frac{1}{3}\log_2{(\frac{1}{3})} = 1.0986 H=3×31log2(31)=1.0986

实例2:假如有三个类别,分别占比为:{1/10,2/10,7/10},信息熵计算结果为:

H = − 1 10 log ⁡ 2 ( 1 10 ) − 2 10 log ⁡ 2 ( 2 10 ) − 7 10 log ⁡ 2 ( 7 10 ) = 0.8018 H = -\frac{1}{10}\log_2{(\frac{1}{10})}-\frac{2}{10}\log_2{(\frac{2}{10})}-\frac{7}{10}\log_2{(\frac{7}{10})} = 0.8018 H=101log2(101)102log2(102)107log2(107)=0.8018

实例3:假如有三个类别,分别占比为:{1,0,0},信息熵计算结果为:

H = − 1 log ⁡ 2 ( 1 ) = 0 H = -1\log_2{(1)} = 0 H=1log2(1)=0

条件熵:

条件熵 H ( Y ∣ X ) H(Y|X) H(YX)表示在已知随机变量 X X X的条件下随机变量 Y Y Y的不确定性。公式如下:
H ( Y ∣ X ) = ∑ x ∈ X p ( x ) H ( Y ∣ X = x ) H(Y|X) = \sum_{x\in{X}}p(x)H(Y|X=x) H(YX)=xXp(x)H(YX=x)

例子:根据帅不帅判断是否嫁不嫁,数据如下:
在这里插入图片描述
H ( Y ∣ X 长相 ) = p ( 帅 ) H ( Y ∣ X 帅 ) + p ( 不帅 ) H ( Y ∣ X 不帅 ) H(Y|X_{长相}) = p(帅)H(Y|X_帅)+p(不帅)H(Y|X_{不帅}) H(YX长相)=p()H(YX)+p(不帅)H(YX不帅)
H ( Y ∣ X 帅 ) = − 5 8 log ⁡ ( 5 8 ) − 3 8 log ⁡ ( 3 8 ) H(Y|X_帅) = -\frac{5}{8}\log(\frac{5}{8}) - \frac{3}{8}\log(\frac{3}{8}) H(YX)=85log(85)83log(83)
H ( Y ∣ X 不帅 ) = − 1 4 log ⁡ ( 1 4 ) − 3 4 log ⁡ ( 3 4 ) H(Y|X_{不帅}) = -\frac{1}{4}\log(\frac{1}{4}) - \frac{3}{4}\log(\frac{3}{4}) H(YX不帅)=41log(41)43log(43)
p ( 帅 ) = 8 12 = 2 3 p(帅) = \frac{8}{12} = \frac{2}{3} p()=128=32
p ( 不帅 ) = 4 12 = 1 3 p(不帅) = \frac{4}{12} = \frac{1}{3} p(不帅)=124=31

信息增益:

特征 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)之差,它特征X的信息而使得类Y的信息的不确定性减少的程度。公式为:
g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A) = H(D)-H(D|A) g(D,A)=H(D)H(DA)

例子:以贷款申请数据为例
在这里插入图片描述
我们将 A 1 , A 2 , A 3 , A 4 A_1,A_2,A_3,A_4 A1,A2,A3,A4分别代表年龄、有无工作、有无房子和信贷情况,则对应的信息增益为:
在这里插入图片描述
信息增益最大的 A 3 A_3 A3有无房子作为第一个节点,然后以 A 3 A_3 A3为根节点,将数据集分为两个子集,然后在子集里分别计算对应的信息增益,计算筛选下一个节点;继续重复以上步骤。最后构建以下的决策树:
在这里插入图片描述
信息增益比:

是在信息增益的基础之上乘上一个惩罚参数。特征个数较多时,惩罚参数较小;特征个数较少时,惩罚参数较大。惩罚参数:数据集D以特征A作为随机变量的熵的倒数。

基尼指数:

基尼系数是信息增益准则的一种近似,具有计算简单的特点。将信息熵中的 f ( x ) = − l n ( x ) f(x)=-ln(x) f(x)=ln(x) x = 1 x=1 x=1处进行泰勒展开。所以信息熵可以被近似为:
I ( X ) = ∑ k = 0 K p ( Y = k ∣ X ) ( 1 − p ( Y = k ∣ X ) ) = G i n i ( X ) I(X)=\sum_{k=0}^{K}p(Y=k|X)(1-p(Y=k|X))=Gini(X) I(X)=k=0Kp(Y=kX)(1p(Y=kX))=Gini(X)
G i n i ( X ) = 1 − ∑ k = 0 K p ( Y = k ∣ X ) 2 Gini(X)=1-\sum_{k=0}^{K}p(Y=k|X)^2 Gini(X)=1k=0Kp(Y=kX)2

例子1:假如有三个类别,分别占比为:{1/10,2/10,7/10},基尼指数计算结果为:

G = 1 − ( 1 10 ) 2 − ( 2 10 ) 2 − ( 7 10 ) 2 = 0.46 G = 1- (\frac{1}{10})^2 - (\frac{2}{10})^2 - (\frac{7}{10})^2 = 0.46 G=1(101)2(102)2(107)2=0.46

3、决策树算法

决策树有三种典型算法:ID3、C4.5和CART算法。
ID3:节点根据信息增益进行特征选择

核心是在决策树的各个节点上应用信息增益准则进行特征选择,递归的构建决策树。具体方法是:从根节点开始,对节点计算所有可能的特征的信息增益,选择信息增益最大的特征作为节点的特征,由该特征的不同哦取值建立子节点;再对子节点递归调用以上方法,构建决策树;直到所有特征的信息增益均很小或者没有特征可以选择为止。最后得到一个决策树。
优点:适合处理小数据集
缺点:不能处理具有连续值的属性和属性具有缺失值的样本。

C4.5:在生成决策树过程中,使用信息增益比来特征选择

C4.5使用的是信息增益比来选择特征,克服了ID3的不足。可以处理离散型描述属性,也可以处理连续数值型属性。能处理不完整数据。
优点:分类规则便于理解,准确率较高,特征值多的时候选择C4.5算法。
缺点:数据集很大时不适合。

CART算法:使用基尼指数特征选择

CART算法既可以用来分类,也可以用来做回归。当CART是分类树时,采用Gini指数作为节点分裂的依据,并且输出是分类值;当CART是回归树时,采用样本的最小方差作为节点分裂的依据,输出是数值。另外,CART树是二叉树。

4、决策树剪枝

4.1 什么是剪枝

剪枝是指将一颗子树的子节点全部删掉,利用叶子节点替换子树(实质上是后剪枝技术),也可以(假定当前对以root为根的子树进行剪枝)只保留根节点本身而删除所有的叶子。
在这里插入图片描述

4.2 为什么要剪枝

决策树是充分考虑了所有的数据点而生成的复杂树,有可能出现过拟合的情况,决策树越复杂,过拟合的程度会越高。特别是极端情况:如果我们令所有的叶子节点都只含有一个数据点,那么我们能够保证所有的训练数据都能准确分类,但是很有可能得到高的预测误差,原因是将训练数据中所有的噪声数据都”准确划分”了,强化了噪声数据的作用。而剪枝修剪分裂前后分类误差相差不大的子树,能够降低决策树的复杂度,降低过拟合出现的概率。
本质上是决策树的过程是一个递归过程,我们需要确定一个停止的条件。

4.3 怎么进行剪枝

先剪枝和后剪枝两种方案:先剪枝是提前结束决策树的增长;后剪枝是指在决策树生长完成之后再进行剪枝的过程。
先剪枝

对决策树停止标准的修改。比如设定一个阈值,超过阈值导致节点不纯度下降则停止剪枝。

后剪枝

后剪枝是从一个充分生长的树中,按照自低向上的方式修剪掉多余的分支。

4.4 两种剪枝方案的对比

先剪枝

优点:

  • 决策树的训练时间开销和测试时间开销少
  • 后续可能性高

缺点:

  • 泛化性能降低
  • 欠拟合风险高

后剪枝

优点:

  • 欠拟合风险低
  • 泛化性能高

缺点:

  • 时间开销大
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AIGC人工智残

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值