Machine_Learning_2019_Task 10 CART

本文聚焦于CART决策树,介绍了其与ID3的异同点,阐述分类树基于Gini指数、回归树基于平方误差最小化的原理。详细说明了CART树的生成算法,包括递归划分数据集、选择最小Gini指数的特征和切分点。还介绍了预剪枝和后剪枝过程,通过交叉验证选最优子树。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Machine_Learning_2019_Task 10 CART

要求

  • 学习Gini指数
  • 学习回归、分类树
  • 剪枝

CART树

  • 目标变量是类别型——分类树:Gini指数
  • 目标变量是连续型——回归树:平方误差最小化(前期Task8已解释)
  • 算法
    • 决策树生成
    • 决策树剪枝
CART与ID3的异同点

二元划分

  • 二叉树不易产生数据碎片,精确度往往也会高于多叉树。

选择变量的不纯度

  • 分类型目标:Gini指数。
  • 连续型目标:最小平方残差。

CART生成算法

输入:训练数据集D,停止计算条件

输出:CART决策树

从根结点,递归对每个结点操作:

    1. 设结点数据集为D,对每个特征A,对其每个值a,根据样本点对A=a的测试为是或否,将D分为D1,D2,计算A=a的Gini指数;
    1. 在所有的特征A以及所有可能的切分点a中,选择Gini指数最小的特征和切分点,将数据集分配到两个子结点中;
    1. 对两个子结点递归调用1,2步骤;
    1. 生成CART树。

剪枝过程

  • 用预剪枝或后剪枝对训练集生长的树进行剪枝。
    1. 形成子树序列:从生成算法产生的决策树T0底端开始不断剪枝,直到T0的根结点,形成子树序列{T0,T1…Tn};

      剪枝过程中,计算子树的损失函数:
      Cα(T)=C(T)+α∣T∣ C_{\alpha}(T)=C(T)+\alpha|T| Cα(T)=C(T)+αT
      对固定的a一定存在损失函数最小的子树,表示为Ta,当a变大时,最优子树Ta偏小,a=0时,整体树最优,a趋近无穷大,单结点最优;

      将a从小增大,
      o=α0&lt;α1&lt;⋯&lt;αn&lt;+∞ \mathrm{o}=\alpha_{0}&lt;\alpha_{1}&lt;\dots&lt;\alpha_{n}&lt;+\infty o=α0<α1<<αn<+
      最有字数序列:
      {T0,T1,⋯&ThinSpace;,Tn} \left\{T_{0}, T_{1}, \cdots, T_{n}\right\} {T0,T1,,Tn}
      从T0开始剪枝,以t为单结点树的损失函数:
      Cα(t)=C(t)+α C_{\alpha}(t)=C(t)+\alpha Cα(t)=C(t)+α
      以t为根结点的子树Tt的损失函数:
      Cα(Tt)=C(Tt)+α∣Tt∣ C_{\alpha}\left(T_{t}\right)=C\left(T_{t}\right)+\alpha\left|T_{t}\right| Cα(Tt)=C(Tt)+αTt
      当a=0及a很小时,
      Cα(Ti)&lt;Cα(t) C_{\alpha}\left(T_{i}\right)&lt;C_{\alpha}(t) Cα(Ti)<Cα(t)
      不断增大a,当
      Cα(Tt)=Cα(t)α=C(t)−C(Tt)∣Tt∣−1 C_{\alpha}\left(T_{t}\right)=C_{\alpha}(t) \quad \alpha=\frac{C(t)-C\left(T_{t}\right)}{\left|T_{t}\right|-1} Cα(Tt)=Cα(t)α=Tt1C(t)C(Tt)
      Tt与t有相同损失函数值,但t结点更少,所以剪枝Tt。

      对T0中每个内部结点t,计算:
      g(t)=C(t)−C(Tt)∣Tt∣−1 g(t)=\frac{C(t)-C\left(T_{t}\right)}{\left|T_{t}\right|-1} g(t)=Tt1C(t)C(Tt)
      在T0中剪去g(t)最小的Tt,将得到的子树作为T1,同时将最小的g(t)设为a1,T1为区间[a1,a2) 的最优子树;

      直到根节点,不断增加a的值,产生新的区间。

    1. 通过交叉验证法在独立的验证数据集上对子树序列{T0,T1…Tn}进行测试,从中选择最优子树Ta;

      即,利用独立的验证数据集,测试子树序列中各子树的平方误差或基尼指数,最小的决策树就是最优决策树。

树建立

  • 如果目标变量是标称的,并且是具有两个以上的类别,则CART可能考虑将目标类别合并成两个超类别(双化);
  • 如果目标变量是连续的,则CART算法找出一组基于树的回归方程来预测目标变量。
CART之分类树的生成(Gini指数)
  • 分类问题中,假设有k个类,样本点属于k的概率Pk,则概率分布的基尼指数:
    Gini⁡(p)=∑k=1Kpk(1−pk)=1−∑k=1Kpk2 \operatorname{Gini}(p)=\sum_{k=1}^{K} p_{k}\left(1-p_{k}\right)=1-\sum_{k=1}^{K} p_{k}^{2} Gini(p)=k=1Kpk(1pk)=1k=1Kpk2

  • 二分类问题:
    Gini⁡(p)=2p(1−p) \operatorname{Gini}(p)=2p(1-p) Gini(p)=2p(1p)

  • 对给定的样本集合D,基尼指数:
    Gini⁡(D)=1−∑k=1K(∣Ck∣∣D∣)2 \operatorname{Gini}(D)=1-\sum_{k=1}^{K}\left(\frac{\left|C_{k}\right|}{|D|}\right)^{2} Gini(D)=1k=1K(DCk)2

  • 如果样本集合D根据特征A是否为a被分割成D1和D2,即:
    D1={(x,y)∈D∣A(x)=a},D2=D−D1 D_{1}=\{(x, y) \in D | A(x)=a\}, \quad D_{2}=D-D_{1} D1={(x,y)DA(x)=a},D2=DD1

  • 则在特征A的条件下,集合D的基尼指数:
    Gini⁡(D,A)=∣D1∣∣D∣Gini⁡(D1)+∣D2∣∣D∣Gini⁡(D2) \operatorname{Gini}(D, A)=\frac{\left|D_{1}\right|}{|D|} \operatorname{Gini}\left(D_{1}\right)+\frac{\left|D_{2}\right|}{|D|} \operatorname{Gini}\left(D_{2}\right) Gini(D,A)=DD1Gini(D1)+DD2Gini(D2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值