• 第四章 决策树


    4.1 基本流程

    决策树是一类常见的机器学习方法。以二分类任务为例,其结构类似于二叉树。以西瓜问题为例,其结构如图所示:
    在这里插入图片描述
    一般的,一颗决策树包含一个根节点、若干个内部结点和若干个叶节点;叶节点对应决策结果,其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子节点中;根结点包含样本全集。从根结点到每个叶节点的路径对应了一个判定测试序列。决策树学习的目的是为了产生一颗泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单且直观的分而治之策略。
    请添加图片描述

    4.2 划分选择

    一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的纯度越来越高。

    4.2.1 信息增益

    信息熵是度量样本集合纯度最常用的一种指标。
    假定当前样本集合D中第k类样本所占的比例为Pk(k = 1, 2, …, |y| ),则D的信息熵定义为
    在这里插入图片描述
    其值越小,D纯度越高。
    假定离散属性a有V个可能的取值{a1,a2, …, aV},若使用a来对样本集D进行划分,则会产生V个分支结点,其中第v个分支结点包含了D中所有在属性a上取值为aV的样本,记为Dv.我们可根据上式计算出Dv的信息熵,再考虑到不同的分支结点所包含的样本数不同,给分支结点赋予权重|Dv|/|D|,即样本数越多的分支结点的影响越大,于是可计算出用属性a对样本集D进行划分所获得的信息增益。信息增益计算公式如下:
    在这里插入图片描述
    一般的,信息增益越大,则意味着使用属性a来进行划分所获得的纯度提升越大!

    4.2.2 增益率

    实际上,信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,著名的C4.5决策树算法不直接使用信息增益,而是使用“增益率”来选择最优划分属性。其定义为
    在这里插入图片描述
    其中
    在这里插入图片描述
    称为属性a的固有值,属性a的可能取值数目越多,则IV(a)的值通常会越大。
    需注意的是,增益率准则对可取值数目较少的属性有所偏好,因此C4.5算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。

    4.2.3 基尼指数

    CART(Classification and Regression Tree)决策树使用基尼指数来选择划分属性,数据集D的纯度可用基尼值来度量:
    在这里插入图片描述
    直观来说,Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。因此,Gini(D)越小,则数据集D的纯度越高。
    属性a的基尼指数定义为
    在这里插入图片描述
    于是,我们在候选属性集合A中,选择那个使得划分后基尼指数最小的属性作为最优划分属性。

    4.3 剪枝处理

    剪枝是决策树学习算法对付过拟合的主要手段。决策树剪枝的基本策略有预剪枝后剪枝预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶节点;后剪枝则是先从训练集生成一颗完整的决策树,然后自底向上地对非叶节点进行考察,若将该结点对应的子树替换为叶节点能带来决策树泛化性能提升,则将该子树替换为叶节点。
    预剪枝使得决策树的很多分支都没有展开,这不仅降低了过拟合的风险,还显著减少了决策树的训练时间开销和测试时间开销。但另一方面,有些分支的当前划分虽不能提升泛化性能、甚至可能导致泛化性能暂时下降,但在其基础上进行的后续划分却有可能导致性能显著提高;预剪枝基于贪心本质禁止这些分支展开,给预剪枝决策树带来了欠拟合的风险。
    后剪枝决策树通常比预剪枝决策树保留了更多的分支,一般情形下,后剪枝决策树的欠拟合风险很小,泛化性能往往由于预剪枝决策树。但后剪枝过程是在生成完全决策树之后进行的,并且要自底向上地对树中的所有非叶节点进行逐一考察,因此其训练时间开销比未剪枝决策树和预剪枝决策树都要大得多。

    4.4 连续与缺失值

    4.4.1 连续值处理

    之前讨论的都是基于离散属性来生成决策树。由于连续属性的可取值数目不再有限,因此,不能直接根据连续属性的可取值来对结点进行划分。这时,连续属性离散化技术可派上用场,最简单的的策略是采用二分法对连续属性进行处理。

    4.4.2 缺失值处理

    4.5 多变量决策树

    与传统的单变量决策树不同,在多变量决策树的学习过程中,不是为每个非叶节点寻找一个最优划分属性,而是试图建立一个合适的线性分类器。若能使用斜的划分边界,如图所示,决策树模型将大为简化。多变量决策树就是能实现这样的斜划分甚至更复杂划分的决策树。
    在这里插入图片描述
    一个典型的多变量决策树如图所示
    在这里插入图片描述

  • 相关阅读:
    Vue电商项目--登录与注册
    【JVM】对象创建与访问
    Linux安装MySQL(源码安装)
    java存储数据到本地txt文件中-以及-读取txt文件的内容
    【计算机组成 课程笔记】7.1 存储层次结构概况
    Node.js数电票、全电票查验接口示例、发票查验、票据OCR API
    Zabbix邮箱告警
    Windows Powershell命令一条命令安装Python
    JUL 学习
    【CSDN竞赛】第八期解题报告
  • 原文地址:https://blog.csdn.net/weixin_44014982/article/details/127971372