第四章 决策树

一、决策树是一类常见的机器学习方法,又称"判别树",决策过程的最终结论对应了我们所希望的判定结果。在决策过程中提出的每个判定问题都是对某个属性的"测试",每个测试的结果或是导出最终结论,或是导出进一步的判定问题,其考虑范围是在上次决策结果的限定范围之内。

一棵决策树包含三种情况:

  • 一个根结点:包含样本全集

  • 若干个内部结点:对应属性测试,每个结点包含的样本集合根据属性测试结果划分到子结点中

  • 若干个叶结点:对应决策结果

二、决策树学习基本算法:

  • 决策树的生成是一个递归过程,在这个决策树学习基本算法中,有三种情形会导致递归返回:

    (1)当前结点包含样本属同一类别,无需划分;

    ​ (2)当前属性集为空,所有样本在所有属性上取值相同,无法划分;

    ​ (3)当前结点包含的样本集合为空,不能划分。

  • 在第2种情形下,把当前结点标记为叶结点,并将其类别设定为该结点所含样本最多的类别;

  • 在第3种情形下,同样把当前结点标记为叶结点,但将其类别设定为其父结点所含样本最多的类别。

三、决策树划分选择:

  • 关键是如何选择最优划分属性。

  • 旨在使决策树分支节点所包含样本尽可能属于同一类别,提高节点"纯度"。

四、划分属性:

  1. 信息增益

    • 度量样本集合纯度的指标。
    • 信息熵是样本集合纯度的度量,值越小,纯度越高。
    • 利用属性对样本集进行划分可以得到信息增益,信息增益越大,纯度提升越大。
    • 著名的ID3决策树算法就是以"信息增益"为准则来选择划分属性。
  2. 增益率

    由于信息增益对可取值数目较多的属性有所偏好,C4.5决策树算法使用增益率选择最优划分属性。

  3. 基尼指数

    • 反映了从数据集中随机抽取两个样本,其类别标记不一致的概率。

    • 基尼指数越小,数据集纯度越高。

  4. 剪枝处理

    • 处理"过拟合"的手段,包括预剪枝和后剪枝。

    • 预剪枝是在划分前进行估计,若当前节点划分不能提升决策树泛化性能,则停止划分。

    • 后剪枝是先生成完整决策树,然后自底向上考察非叶节点,若替换为叶节点能提升性能,则进行替换。

  5. 连续与缺失值处理

    • 在决策树中使用连续属性,采用二分法处理。

      二分法:

      步骤:选择一个分割点,将连续属性的范围分为两个部分,每个部分对应一个分支。

      分割点选择:通常选择使信息增益(或增益率、基尼指数)最大的点作为分割点。

      实现:遍历所有可能的分割点,计算每个点的信息增益,选择最佳分割点。

    • 对于属性值缺失的样本,有特定的处理方法:

      忽略缺失值:当一个样本的某个属性值缺失时,可以简单地忽略这个样本,只使用完整的样本来构建决策树。

      分配概率:对于缺失值,可以根据其他非缺失样本在该属性上的分布情况,为缺失样本分配一个概率分布。

      替代值:可以使用该属性的非缺失值的统计量(如平均值、中位数)来填充缺失值。

相关推荐
浪里镖客28 分钟前
位姿转换矩阵写法-个人习惯(计算机理解其实是相反的)
线性代数·算法·矩阵
戴西软件2 小时前
戴西iDWS.3DViz Suite数据轻量化可视化软件,从传统桌面软件向云端协同的重大突破
大数据·运维·网络·人工智能·机器学习·3d
小白羊丨3 小时前
如何诊断 Prompt 模板导致的效果下降?
人工智能·算法·prompt
OPEN-F5 小时前
C++11/14新特性精讲:移动语义与智能指针实战
开发语言·c++·算法
lisin-lee-cooper5 小时前
【leetcode658】有序数组找出k个最接近x的数
java·数据结构·算法
sunburn-5 小时前
Java堆(Heap)详解与实战教学
java·开发语言·数据结构·ide·算法
智碳能碳管理平台6 小时前
工业能耗台账标准化:能碳管理系统的数据口径怎么设计
算法·能碳管理系统·智碳能碳管理平台·企业能碳管理系统·碳排放核算软件·绿色工厂申报saas·能碳管理平台
今天AI了吗6 小时前
大模型技术全景(一):AI、机器学习、深度学习,三者的关系到底是什么?一文搞懂
数据库·人工智能·python·sql·深度学习·机器学习·rust
带多刺的玫瑰6 小时前
Leecode#15刷题之三数之和
算法·leetcode·职场和发展
哭泣方源炼蛊6 小时前
并查集进阶 P1(带权并查集,并查集分类)
数据结构·c++·算法·二进制·带权并查集