【笔记】决策树

决策树

  1. 通过层层的if判断条件,将数据集划分成规模越来越来小的子集,直至无需划分。
  2. 核心:划分依据、剪枝

一、理论基础

  1. 熵 H(A)
  2. 信息增益 I(D, A) = H(D) - H(D|A)
    已知特征A后,不确定性减小的程度。
  3. 信息增益比
    用于C4.5算法,解决以下两个问题:
    • 同等概率下,ID3倾向分类多的特征。
    • 缓解ID3分类过细,导致的过拟合问题。
  4. 基尼系数
    用于CART分类树。同信息增益比的目的一样,但去除了对数运算,提高运算效率。
  5. 和方差
    用于CART回归树。

二、核心问题

  1. 划分数据时,应该如何选择依据?
  2. 数据集划分到什么状态时,终止划分?
  3. 如何防止过拟合问题?

三、ID3算法(处理分类问题)

  1. 首先设置终止阈值𝜖。
  2. 若当前数据集都为同一种类别,则直接标记为该类别,返回单节点树。
  3. 若当前数据集无特征,则标记为数据中数量最多的类别。
  4. 每次对一个结点划分时(结点分叉),遍历剩余的可选特征,选择信息增益比最大的特征作为划分依据。
  5. 若信息增益比小于𝜖,则停止划分。
  6. 否则以当前结点作为根节点,进行分叉,并重复步骤1。

ID3算法的缺点

  1. 只能处理离散的特征
  2. 划分太精细,导致过拟合问题

四、C4.5算法(处理分类问题)

  1. 数据集的划分
    相较于离散型特征,比如球的颜色:红色、黑色,连续型特征往往每个样本对应不同的值,无法直接计算熵。
    C4.5算法采取将连续值离散化的方式。
    假设数据集m中,连续特征A有m个,通过相邻两组加和取平均得到m-1个点。依次遍历,取信息增益比最大的点作为该特征A的分类点。比如离散化后,要计算a[i]的信息增益比,则把小于a[i]的看成一类,大于a[i]的看成一类,便可计算。
    C4.5对于连续特征是二分叉?

  2. 特征值选择
    采用信息增益

五、CART算法(分类和回归)

  • 分类树:输出是离散值
  • 回归树:输出是连续值

CART分类树

  1. 划分依据由信息增益比变为基尼系数。
  2. 处理连续型特征的思想同C4.5相同。
  3. 处理离散型特征时:
    在ID3和C4.5算法中,假设选择的离散型特征A有三个取值[A1, A2, A3],则结点被分成三叉树。
    在CART算法中,每次都是将特征划分为两类,如[A1, (A2, A3)]或[(A1, A2), A3)]或[(A1, A3), A2)],选取使基尼系数最小的分类,每次都是分成二叉树。
  4. 建树完成后做预测时,若数据走到了树的叶子结点,该结点中有多个类别,则选择概率最大的那个类别。

CART回归树

  1. 对于连续型特征,不再采取基尼系数作为度量标准,而是采用和方差的方式。
  2. 建树完成后做预测时,使用走到的叶子结点的均值或中位数作为预测结果。

CART后剪枝

  1. 基于原始决策树,根据损失函数,遍历所有可能的剪枝情况(𝛼取不同值),每种情况对应一棵剪枝后的树,全都保存下来。
    1. 首先取𝛼为无穷大。
    2. 自下而上遍历CART树,对于每个结点计算𝛼𝑚𝑖𝑛,并保存到列表中。
    𝛼 = 𝑚𝑖𝑛{𝐶(𝑇)−𝐶(𝑇𝑡)/(|𝑇𝑡|−1),𝛼𝑚𝑖𝑛}
    𝛼𝑚𝑖𝑛 = 𝛼
    
    1. 每一个𝛼,都自上而下遍历CART树,进行剪枝,并将遍历后的树保存,进行后续交叉验证。
  2. 对于每一种剪枝后的树,利用检查验证的方式,选出最优的剪枝情况。
posted @ 2021-09-05 10:39  Daybreaking  阅读(71)  评论(0编辑  收藏  举报