【一起入门MachineLearning】中科院机器学习第*课-非线性分类:决策树

专栏介绍:本栏目为 “2021秋季中国科学院大学周晓飞老师的机器学习” 课程记录,不仅仅是课程笔记噢~ 如果感兴趣的话,就和我一起入门Machine Learning吧

目录

  • 定义
  • 决策树的关键问题
    • 1.问题数
    • 2.划分(问题)选择
      • 非纯度
        • 1. 熵度量(Quinlan, C4.5)
        • 2. 基尼指数(Gini Index)
        • 3. 分类误差
      • 决策树划分算法
        • ID3(熵,信息增益)
        • C4.5(熵,信息增益率)
        • CART
    • 3.决策树生成
    • 4.剪枝处理

本篇博客除了参考老师的课件之外,绝大部分内容参考https://blog.csdn.net/zhaocj/article/details/50503450,老师的课件实在看不懂(悄悄吐槽真的很乱啊),但是这篇博客简直就是令人茅塞顿开的!

定义

  • 决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。

  • 使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。

【一起入门MachineLearning】中科院机器学习第*课-非线性分类:决策树_第1张图片

决策树的关键问题

1.问题数

  • 方法 1

    • 每个特征可以作为候选问题,例如 ID3、C4.5;
    • 属性 Ai 产生的候选问题数为 Ni=1;
    • 【一起入门MachineLearning】中科院机器学习第*课-非线性分类:决策树_第2张图片
  • 方法 2

    • 每个特征的每个离散值作为候选问题,例如 CART;
    • 属性 Ai 产生的候选问题数为 Ni=ni;
      【一起入门MachineLearning】中科院机器学习第*课-非线性分类:决策树_第3张图片
  • 候选问题数:

    • 无论特征值是连续还是离散,确定每个属性所产生的候选问题,候选的问题总数为 N = ∑Ni

2.划分(问题)选择

非纯度

  • 决策树往往采用的是自上而下的设计方法,每迭代循环一次,就会选择一个特征属性进行分叉,直到不能再分叉为止。因此在构建决策树的过程中,选择最佳(既能够快速分类,又能使决策树的深度小)的分叉特征属性是关键所在。这种“最佳性”可以用非纯度(impurity)进行衡量。

  • 应满足两点:

    • IM 最大值时,各类别概率相等。
    • IM 最小时为 0,只有一类(期望的目标),表示一个数据集合中只有一种分类结果,则该集合最纯。
  • 有三个指标来度量这种非纯度:

1. 熵度量(Quinlan, C4.5)

【一起入门MachineLearning】中科院机器学习第*课-非线性分类:决策树_第4张图片

2. 基尼指数(Gini Index)

【一起入门MachineLearning】中科院机器学习第*课-非线性分类:决策树_第5张图片

3. 分类误差

在这里插入图片描述
熵,基尼指数(Gini Index)和分类误差的值越大说明越不纯

  • D:表示数据的分类集合
  • pj:该集合共有J种分类,表示第j种分类的样本率:
    在这里插入图片描述
  • N:表示集合D中样本数据的总数
  • Nj:第j个分类的样本数量

整理得到公式:
【一起入门MachineLearning】中科院机器学习第*课-非线性分类:决策树_第6张图片

决策树划分算法

目前常用的决策树的算法包括ID3、C4.5和CART。前两种算法主要应用的是基于熵的方法,而第三种应用的是基尼指数的方法。下面我们就逐一介绍这些方法。

ID3(熵,信息增益)

如前所述,我们已经有了熵作为衡量样本集合纯度的标准,熵越大,越不纯,因此我们希望在分类以后能够降低熵的大小,使之变纯一些。这种分类后熵变小的判定标准可以用信息增益来衡量,它的定义为:
在这里插入图片描述
该式表示在样本集合D下特征属性A的信息增益

  • n:针对特征属性A,样本集合被划分为n个不同部分,即A中包含着n个不同的值
  • Ni:第i个部分的样本数量
  • E(Di):表示特征属性A 下第i个部分的分类集合的熵。

信息增益越大,分类后熵下降得越快,则分类效果越好,因此我们在D内遍历所有属性,选择信息增益最大的那个特征属性进行分类。在下次迭代循环中,我们只需对上次分类剩下的样本集合计算信息增益,如此循环,直至不能再分类为止。

C4.5(熵,信息增益率)

C4.5是ID3算法的扩展。ID3应用的是信息增益的方法,但这种方法存在一个问题,那就是它会更愿意选择那些包括很多种类的特征属性,即哪个A中的n多,那么这个A的信息增益就可能更大。为此,C4.5使用信息增益率这一准则来衡量非纯度,即:
在这里插入图片描述

  • SI(D, A)表示分裂信息值,它的定义为:
  • 在这里插入图片描述
  • 同样的,我们选择信息增益率最大的那个特征属性作为分类属性。

CART

CART算法它包括分类树和回归树两种,本篇博客只讨论分类树。

针对特征属性A,分类后的基尼指数为
在这里插入图片描述
在这里插入图片描述

与ID3和C4.5不同,我们选择分类基尼指数最小的那个特征属性作为分类属性。

总结:

  • 非纯度要尽可能小
  • 熵,基尼指数(Gini Index)和分类误差的值尽可能小
  • 信息增益/信息增益率尽可能大(信息增益描述熵下降的程度)
  • ID3 C4.5要求越大越好
  • 基尼指数尽可能小

3.决策树生成

决策树生成过程:从顶向下(不断增加一个节点)

  • 准则:所有划分中选择一个使 (非纯度减少量)最大的划分为节点,加入决策树。
  • 贪婪学习: 根据划分准则,在问题集上进行划分,直到 Impurity 不能再改善,或达到较小的改善。
  • 停止规则: 设定阈值

ID3 决策树

  • 属性特征作为结点问题,划分选择实际是特征选择过程;
  • 划分选择依据:最大化信息增益

C4.5 决策树

  • 属性特征作为结点问题,划分选择实际是特征选择过程;
  • 划分选择依据:最大化信息增益率

CART 决策树

  • 属性特征离散值作为结点问题,本质是二叉树;
  • 划分选择依据:最小化基尼指数。

4.剪枝处理

将复杂的决策树进行简化的过程称为剪枝,它的目的是去掉一些节点,包括叶节点和中间节点。剪枝常用的方法有预剪枝和后剪枝两种。

  • 预剪枝:构建决策树的过程中,提前终止决策树的生长,从而避免过多的节点的产生。该方法虽然简单但实用性不强,因为我们很难精确的判断何时终止树的生长。
  • 后剪枝:在决策树构建完后再去掉一些节点。常见后剪枝方法有四种:悲观错误剪枝(PEP)、最小错误剪枝(MEP)、代价复杂度剪枝(CCP)和基于错误的剪枝(EBP)。

期末练习题可以参考这篇博客:【一起入门MachineLearning】中科院机器学习-期末题库-【计算题5+单选题19+单选题20+简答题21】
参考:https://zhuanlan.zhihu.com/p/26703300
参考:https://blog.csdn.net/zhaocj/article/details/50503450

你可能感兴趣的:(#,机器学习,决策树,机器学习)