决策树生成&剪枝算法原理

决策树生成算法

首先明确信息熵 信息增益的概念

信息增益表示得知特征X信息是的类Y的信息不确定性减少的程度

H(D) 经验熵表示对数据D进行分类的不确定性

H(D|A)经验条件熵表示对特征A给定条件下对数据集D进行分类的不确定性(显然这个值越小越好 那么g(D,A)信息增益就会大)
信息增益比: g R ( D , A ) = g ( D , A ) H A ( D ) 信息增益: g ( D , A ) = H ( D ) − H ( D ∣ A ) 经验熵: H ( D ) = − ∑ k = 1 k ∣ C k ∣ ∣ D ∣ l o g 2 ∣ C k ∣ ∣ D ∣ ; K 个类;  ∣ C k ∣ 第 K 类样本数 经验条件熵: H ( D ∣ A ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ H ( D i ) ; H A ( D ) = − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ l o g 2 ∣ C i ∣ ∣ D ∣ , n 是特征 A 的取值个数 信息增益比:g_R(D,A)=\frac{g(D,A)}{H_A(D)}\\\\ 信息增益:g(D,A) = H(D)-H(D|A)\\\\ 经验熵:H(D) = -\sum_{k=1}^k \frac{|C_k|}{|D|}log_2\frac{|C_k|}{|D|}; K个类;\ |C_k|第K类样本数\\\\ 经验条件熵:H(D|A)=\sum_{i=1}^n\frac{|D_i|}{|D|}H(D_i); \\\\ H_A(D) = -\sum_{i=1}^n\frac{|D_i|}{|D|}log_2\frac{|C_i|}{|D|}, n是特征A的取值个数 信息增益比:gR(D,A)=HA(D)g(D,A)信息增益:g(D,A)=H(D)H(DA)经验熵:H(D)=k=1kDCklog2DCkK个类; CkK类样本数经验条件熵:H(DA)=i=1nDDiH(Di);HA(D)=i=1nDDilog2DCi,n是特征A的取值个数

ID3

核心:在决策树各节点应用信息计算信息增益准则选择特征,(即选择信息增益最大)递归地构建决策树 (相当于极大似然法进行概率模型选择)
在这里插入图片描述

C4.5

就是使用信息增益比选择特征

信息增益的劣势: 会偏向选择取值较多的特征, 增益比可以纠正

CART (分类回归树)

首先明确 是二叉树;决策树生成;决策树剪枝

回归树:平方误差最小化准则

分类树:Gini系数最小化

回归树生成

一棵回归树对应输入(特征)空间的一个划分以及在划分单元上的输出值,这样就可以定义一棵树

假设将特征空间划分为M个单元 R 1 , R 2 , . . . R M R_1,R_2,...R_M R1,R2,...RM每个单元都有一个输出值 c m c_m cm 那么回归时模型可表示:

f ( x ) = ∑ m = 1 M c m I ( x ∈ R m ) f(x) =\sum_{m=1}^Mc_mI(x\in R_m) f(x)=m=1McmI(xRm)
对特征空间的划分,启发式方法: 遍历每个特征的每个取值,划分两个空间,两个空间中每个样本均值和真实值平方误差最下 那么这个特征及相应的取值就是当前最佳切分点

在这里插入图片描述

分类树生成

在这里插入图片描述

同回归树相同的生成模式,只是划分空间的切分点衡量的方式是最小基尼系数

算法停止的条件可以设置叶子节点最小样本数作为阈值,或者基尼指数阈值或者没有更多特征

剪枝

CART剪枝算法是先生成再剪枝,从底向上

  1. 从生成算法产生的决策树 T 0 T_0 T0底部不断剪枝,直到根节点,形成一个子树序列 T 0 , T 1 , . . . , T n {T_0,T_1,...,T_n} T0,T1,...,Tn
  2. 交叉验证选择效果最优子树

怎么剪?

衡量标准除了平方误差或者基尼系数还要加上对树复杂度的衡量,所以损失函数设计:
C α ( T ) = C ( T ) + α ∣ T ∣ C_\alpha (T) = C(T)+\alpha |T| Cα(T)=C(T)+αT
C ( T ) C(T) C(T)为数据误差;|T|为子树叶节点个数

α \alpha α用来权衡调整拟合度和模型复杂度;显然当 α \alpha α较大的时候 最优子树 T α T_\alpha Tα较小即树复杂度较小

在这里插入图片描述

算法流程:

在这里插入图片描述

简单过一遍

参考:
李航:统计学习方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值