【人工智能 | 机器学习 | 理论篇】决策树(decision tree)

2024-08-27 19:52

本文主要是介绍【人工智能 | 机器学习 | 理论篇】决策树(decision tree),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1. 基本流程
  • 2. 划分选择
    • 2.1 信息增益
    • 2.2 增益率
    • 2.3 基尼系数
  • 3. 剪枝处理
    • 3.1 预剪枝
    • 3.2 后剪枝
  • 4. 连续与缺失值
    • 4.1 连续值处理
    • 4.2 缺失值处理
  • 5. 多变量决策树


1. 基本流程

二分类任务决策树流程:
在这里插入图片描述
决策树:包含 1个根结点、若干个内部结点、若干个叶结点。叶结点对应决策结果,内部结点对应属性测试

决策树训练过程
在这里插入图片描述决策树训练时,有 3 种情况会导致递归 return

  1. 结点包含的样本同属于同一类别,无需划分
  2. 属性值完全一致,或者属性集为空(递归边界条件)
  3. 样本集合为空

对第1、2点区别:
样本同属于同一类别,指的是 D 的 y 值取值相同,此时无需划分
属性值完全一致,但是对应的 y 值可能有多个,此时也无需划分。一个原因导致多个结果,不能界定该原因具体会导致哪个结果

第1点关注的是决策树的目标输出
第2点关注的是输入特征

对于2,可以把当前结点标记为叶结点,将类别 y 设定为 取值最多 的类别(后验分布)
对于3,标记为叶结点,将类别设定为 父结点 所含样本最多的类别(先验分布)

对于3,样本划分过程有空集落入,可能由于:

  • 划分过程中,样本被错误分类到其他子节点
  • 过程的划分属性或者划分值导致某些子节点没有样本


这样处理是为了使模型处理不完美数据时也能正常工作,并给出合理的预测结果


2. 划分选择

决策树学习算法 可知,算法的关键在于第 8 行:如何选择最优属性
随着划分过程不断进行,决策树的分支包含的样本应尽可能属于同一类别,即结点的 纯度 越来越高

2.1 信息增益

信息熵(information entropy):度量样本集合纯度的指标
在这里插入图片描述

约定:若 p = 0,则 p l o g 2 p k = 0 plog_2p_k = 0 plog2pk=0

E n t ( D ) Ent(D) Ent(D) 的值越小,D 的纯度越高

信息增益(information gain)
在这里插入图片描述信息增益越大,用 a 来进行划分的 “纯度提升” 越大

a ∗ = a r g m a x a ∈ A G a i n ( D , a ) a_*= \underset{a\in A}{arg\ max}\ Gain(D, a) a=aAarg max Gain(D,a)

信息增益计算案例:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

2.2 增益率

信息增益准则对取值数目较多的属性有偏好。例如把上述案例的编号作为划分属性,信息增益远大于其他属性。因为每个编号分支仅对应一个样本,分支结点的纯度最大。但这没有意义
增益率:减少信息增益准则对可取值数目较多的属性的偏好带来不利影响
在这里插入图片描述增益率 对可取值较的属性有偏好
信息增益 对可取值较的属性有偏好
可以从划分属性中 找出信息增益高于平均水平的属性,再 从中选出增益率最高的

2.3 基尼系数

在这里插入图片描述


3. 剪枝处理

剪枝:对付“过拟合”。过度学习导致决策树分支过多
基本策略:预剪枝、后剪枝
预剪枝:生成决策树过程中,划分结点前先估计。若当前结点的划分不能提升决策树的泛化能力,停止划分并将结点标记为叶结点
后剪枝:生成完决策树,自底向上检察非叶结点。若将该结点对应的子树替换为叶结点能提升泛化性能,则将该子树替换为叶结点

验证方法可使用前面章节提到的 “留出法”,事先预留部分数据作为验证集


3.1 预剪枝

以下为原文:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对于结点2,3,4,按脐部的属性凹陷、稍凹、平坦将训练集归类。对于凹陷,1、2、3是好瓜,14是坏瓜。因此把 结点2 暂时判断为 好瓜。对于稍凹,6、7是好瓜,15、17是坏瓜。此时把结点3归纳为好瓜、坏瓜 对验证集精度计算是没有影响的

如果某个结点划分的子结点,好瓜坏瓜的比例都是50%,验证集精度划不划分都是50%。个人觉得划分好点。可能划分后子结点的子结点能提升验证集精度。可能赚可能不赚,但至少不会亏

3.2 后剪枝

在这里插入图片描述在这里插入图片描述

在这里插入图片描述


4. 连续与缺失值

4.1 连续值处理

上述例子用到的都是离散属性来生成决策树。在现实学习任务中,常会遇到连续属性。连续属性的可取值数目是无限的,因此可以将 连续属性离散化

关键在于找到划分点 t。以连续值的二分类任务为例:
在这里插入图片描述
在这里插入图片描述

以下示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


计算 G a i n ( D , a ) Gain(D, a) Gain(D,a),先计算根结点的熵 E n t ( D ) Ent(D) Ent(D) ,17瓜,8好9坏,得 E n t ( D ) = 0.9975 Ent(D) = 0.9975 Ent(D)=0.9975

  1. t = 0.381 t = 0.381 t=0.381 为例,17个瓜分为2类,
  2. 小于等于0.381的,4瓜,0好4坏;
  3. 大于0.381,13瓜,8好5坏;
  4. 计算 E n t ( D ) Ent(D) Ent(D) 分别为 0,0.9612366。
  5. G a i n = E n t ( D ) − Σ ∣ D ′ ∣ ∣ D ∣ E n t ( D ′ ) = 0.9975 − ( 0.9612366 ∗ 13 17 + 0 ∗ 4 17 ) = 0.262 Gain = Ent(D) - \Sigma\frac{|D'|}{|D|}Ent(D') = 0.9975 - (0.9612366 * \frac{13}{17} + 0 * \frac{4}{17}) = 0.262 Gain=Ent(D)ΣDDEnt(D)=0.9975(0.96123661713+0174)=0.262


计算其他 t,得到的 G a i n Gain Gain 均小于此。所以选择 0.381 作为划分点

4.2 缺失值处理

将缺失值直接丢弃会造成样本浪费。考虑利用有缺失值的样例进行学习
在这里插入图片描述

  • (1)如何在属性值缺失情况下进行划分属性选择?
  • (2)给定划分属性,若样本在该属性上的值缺失,如何样本划分?

对于问题(1)
在这里插入图片描述在这里插入图片描述在这里插入图片描述

这部分就是把不缺失值的数据集单独拎出来,再计算时加个权重。

划分属性选择缺失值不参与

对于问题(2)
在这里插入图片描述

在a属性上的取值是样本在a上的取值,不是样本取值y

以下示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ρ \rho ρ : 整个样本集中,无缺失值样本占的比例
p k p_k pk : 无缺失值样本中,某类样本占的比例
r r r :无缺失值样本中,属性某个取值的样本占的比例


5. 多变量决策树

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

这篇关于【人工智能 | 机器学习 | 理论篇】决策树(decision tree)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112621

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识