决策树问题汇总

本文详细介绍了决策树的学习原理,包括信息熵、信息增益、基尼指数等概念,并讨论了ID3、C4.5和CART算法的区别。此外,还阐述了决策树的剪枝策略,如预剪枝和后剪枝,以防止过拟合。最后,对比了决策树与其他模型的优点,如直观性、处理离散和连续值的能力以及泛化能力。


1. 简述决策树原理?

        决策树是一种基本的分类与回归方法。它可以认为是 if-then 规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。

决策树是一种自上而下,对样本数据进行树形分类的过程,由节点和有向边组成。
节点分为内部节点和叶节点,每个内部节点表示一个特征或属性,叶节点表示类别,边代表划分的条件。
从顶部节点开始,所有样本聚在一起,经过根节点的划分,样本被分到不同的子节点中,再根据子节点的特征进一步划分,直至所有样本都被归到某个类别。

构建决策树 就是一个递归的选择内部节点,计算划分条件的边,最后到达叶子节点的过程。


  • 模型: 分类决策树由结点和有向边组成,结点分为内部结点和叶结点。决策树的路径具有互斥且完备的性质。
  • 策略: 决策树学习本质上是从训练数据集中归纳出一组分类规则。从所有可能的决策树中选取最优决策树是 NP 完全问题,所以现实中常采用启发式方法近似求解。
  • 算法: 决策树学习算法包含特征选择、决策树的生成与决策树的剪枝过程。生成只考虑局部最优,剪枝则考虑全局最优。
  • 特征选择(核心公式):
    • 信息熵: 熵是衡量随机变量不确定性的度量。熵越大,随机变量的不确定性就越大。
      设:随机变量X的概率分布为: P ( X = x i ) = p i , i = 1 , 2 , . . . , n P(X=x_i)=p_i, 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 H(X)=-\sum_{i=1}^{n}p_ilog{p_i} H(X)=i=1npilogpi p i = 1 n p_i=\frac{1}{n} pi=n1时,随机变量的熵最大等于logn,故 0 ≤ H ( X ) ≤ l o g n 0 \leq H(X) \leq logn 0H(X)logn.

    • 条件熵: 条件熵表示在已知随机变量X的条件下随机变量Y的不确定性。
      H ( Y ∣ X ) = ∑ i = 1 n p i H ( Y ∣ X = x i ) H(Y|X)=\sum_{i=1}^{n}p_iH(Y|X=x_i) H(YX)=i=1npiH(YX=xi)

    • 信息增益: 表示已知特征 X 的信息而使得类 Y 的信息的不确定性减少的程度。定义为集合 D 的经验熵与特征 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表示样本集D的元素个数, ∣ C k ∣ |C_k| Ck表示属于第k类的元素个数, ∣ D i ∣ |D_i| Di为特征A取 i i i 时的子集元素个数, ∣ D i k ∣ |D_{ik}| Dik为特征A取 i i i 时子集属于第k类的元素个数。

    • 信息增益比: 特征 A 对训练数据集D的信息增益 g ( D , A ) g(D,A) g(D,A)与数据集D关于特征A的取值经验商 H A ( D ) H_A(D) HA(D)之比: g R ( D , A ) = g ( D , A ) H A ( D ) g_R(D,A)=\frac{g(D,A)}{H_A(D)} gR(D,A)=HA(D)g(D,A)
      其中, H A ( D ) = − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ l o g ∣ D i ∣ ∣ D ∣ H_A(D)=-\sum_{i=1}^{n}\frac{|D_i|}{|D|}log\frac{|D_i|}{|D|} HA(D)=i=1nDDilogDDi

    • 基尼系数: 假设有 K 个类,样本属于第 k 类的概率为 p k p_k pk,则概率分布的基尼指数为: G i n i ( p ) = ∑ k = 1 K p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2 Gini(p)=\sum_{k=1}^{K}p_k(1-p_k)=1-\sum_{k=1}^{K}p_k^2 Gini(p)=k=1Kpk(1pk)=1k=1Kpk2
      在特征 A 的条件下,集合 D 的基尼指数定义为:
      G i n i ( D , A ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ G i n i ( D i ) Gini(D,A)=\sum_{i=1}^{n}\frac{|D_i|}{|D|}Gini(D_i) Gini(D,A)=i=1nDDiGini(Di)
      其中, G i n i ( D ) = 1 − ∑ k = 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 Gini(D)=1-\sum_{k=1}^{K}(\frac{|C_k|}{|D|})^2 Gini(D)=1k=1K(DCk)2
      表示分割后集合 D 的不确定性。基尼指数越大,样本集合的不确定性也就越大。

  • 决策树的生成:
    • ID3生成算法、C4.5生成算法:
      ID3——最大信息增益准则
      C4.5——最大信息增益比准则
      在这里插入图片描述
    • CART回归树生成算法:
      CART回归树——平方误差最小化准则
      在这里插入图片描述
    • CART分类树生成算法:
      CART分类树基尼系数最小化准则
      在这里插入图片描述
  • 决策树的剪枝:

2. 为什么要对决策树进行减枝?如何进行减枝?

        在决策树学习过程中,为了尽可能正确分类训练样本,结点划分过程将不断重复,有时会造成决策树分支过多,因为给训练数据巨大的信任,这种形式形式很容易造成过拟合。为了防止过拟合需要进行决策树剪枝, 一般分为预剪枝和后剪枝,预剪枝是在决策树的构建过程中加入限制,比如控制叶子节点最少的样本个数,提前停止。 后剪枝是在决策树构建完成之后,根据加上正则项的结构风险最小化自下向上进行的剪枝操作.。剪枝的目的就是防止过拟合,是模型在测试数据上变现良好,更加鲁棒

        决策树剪枝的基本策略有“预剪枝”和“后剪枝”。

  • (1)预剪枝( Pre-Pruning): 是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点。
    • 预剪枝原则有:
      a.节点达到完全纯度;
      b.树的深度达到用户所要的深度;
      c.节点中样本个数少于用户指定个数;
      d.不纯度指标下降的最大幅度小于用户指定的幅度。
  • (2) 后剪枝( Post-Pruning): 是先生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。

3. ID3、C4.5和CART三种决策树的区别?

在这里插入图片描述


4. 决策树和条件概率分布的关系?

        决策树可以表示成给定特征条件下类的条件概率分布. 决策树中的每一条路径都对应是划分的一个条件概率分布. 每一个叶子节点都是通过多个条件之后的划分空间,在叶子节点中计算每个类的条件概率,必然会倾向于某一个类,即这个类的概率最大。


5. ID3和C4.5算法可以处理实数特征吗?如果可以应该怎么处理?

        ID3和C4.5使用划分节点的方法分别是信息增益和信息增益比,从这个公式中我们可以看到 这是处理类别特征的方法,实数特征能够计算信息增益吗?
我们可以定义X是实数特征的信息增益是: G ( D ∣ X : t ) = H ( D ) − H ( D ∣ X : t ) G(D|X:t)=H(D)-H(D|X:t) G(DX:t)=H(D)H(DX:t)
其中, H ( D ∣ X : t ) = H ( D ∣ x ≤ t ) p ( x ≤ t ) + H ( D ∣ x > t ) p ( x > t ) H(D|X:t)=H(D|x \leq t)p(x \leq t)+H(D|x>t)p(x>t) H(DX:t)=H(Dxt)p(xt)+H(Dx>t)p(x>t),则: G ( D ∣ X ) = m a x t = G ( D ∣ X : t ) G(D|X)=max_t=G(D|X:t) G(DX)=maxt=G(DX:t)。对于每一个实数可以使用这种方式进行分割. 除此之外,我们还可以使用特征的分桶,将实数特征映射到有限个桶中,可以直接使用ID3和C4.5算法.


6. 既然信息增益可以计算,为什么C4.5还使用信息增益比?

        在使用信息增益的时候,如果某个特征有很多取值,使用这个取值多的特征会的大的信息增益,这个问题是出现很多分支,将数据划分更细,模型复杂度高,出现过拟合的机率更大。使用信息增益比就是为了解决偏向于选择取值较多的特征的问题. 使用信息增益比对取值多的特征加上的惩罚,对这个问题进行了校正。


7. 信息熵、基尼指数都可以表示数据不确定性,为什么CART使用基尼指数?

信息熵需要计算对数,计算量大;信息熵是可以处理多个类别,基尼指数就是针对两个类计算的,由于CART树是一个二叉树,每次都是选择yes or no进行划分,从这个角度也是应该选择简单的基尼指数进行计算。



8. 决策树和其他模型相比有什么优点?

1)简单直观,生成的决策树很直观。
2)基本不需要预处理,不需要提前归一化,处理缺失值。
3)使用决策树预测的代价是O(log2m)。 m为样本数。
4)既可以处理离散值也可以处理连续值。很多算法只是专注于离散值或者连续值。
5)可以处理多维度输出的分类问题。
6)相比于神经网络之类的黑盒分类模型,决策树在逻辑上可以得到很好的解释
7)可以交叉验证的剪枝来选择模型,从而提高泛化能力。
8) 对于异常点的容错能力好,健壮性高。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值