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

news2024/12/24 19:48:14

文章目录

  • 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. 多变量决策树

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2079981.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云计算实训37——Dockerfile的应用+私有仓库的创建与管理

一、文件联合系统 文件联合系统(Overlay Filesystem): 是一种允许多个文件系统层叠在一起的文件系统。它通常用于将只读文件系统(如基础镜像)与可写文件系统(如用户的修改)结合,形…

2k1000LA 调试触摸+调试8723bu

原材料: 硬件: 2k1000LA 开发板 软件: 使用网盘上的 pmon 源码 linux源码 逻辑: 设备树的修改需要在 pmon 源码里面修改 驱动的修改需要在 linux 的源码里面修改。 下载 loongnix 的 pmon 源码 linux 源码 ,并放入虚…

雷达图概述以及实例

目录 一.雷达图概述1.何为雷达图2.雷达图的构成要素 二.实例(以Excel、Python为例 )1.Excel(2021版)2.Python 一.雷达图概述 1.何为雷达图 雷达图,是一种展现多维度数据间相对重要性或程度的可视化图形。以中心点为起…

软件测试方法之场景法详解及实战

一、游戏测试与软件测试流程的区别 1.1 区别对比 游戏测试的流程与软件测试流程的区别大同小异,但仍然会根据公司的情况做出不同的策略和应对方式,在体验方面会存在较大的差异    (这里只单纯阐述流程上的区别,不细分延展&#…

记一次山东省某测试平台渗透测试

最近: 离开山东有段时间了,今天刚好有空就回头看看(意难平),搭建框架是WINDOWSIISASP.NET这个演示版上直接泄露了账号密码,admin/111111。 登录框先试一下SQL注入 SQL注入 bp抓包结果 开局就找了登录框SQL注入,先进后台看一下功…

横向移动:勒索软件攻击正在展开的最明显迹象

据 Barracuda Networks 称,44% 的勒索软件攻击是在横向移动期间发现的。 25% 的事件是在攻击者开始编写或编辑文件时检测到的,14% 的事件因不符合已知活动模式的行为而被揭露。 研究人员分析了 2023 年 8 月至 2024 年 7 月期间报告的 200 起事件样本&…

PyTorch深度学习模型训练流程:(一、分类)

自己写了个封装PyTorch深度学习训练流程的函数,实现了根据输入参数训练模型并可视化训练过程的功能,可以方便快捷地检验一个模型的效果,有助于提高选择模型架构、优化超参数等工作的效率。发出来供大家参考,如有不足之处&#xff…

iPhone 16要发布了,iPhone 13 咋办啊

iPhone 16要发布了,iPhone 13 咋办啊? Phone 16的屏幕尺寸和分辨率是多少? iPhone 16采用了6.1英寸的超视网膜XDR显示屏,与iPhone 15相同。屏幕分辨率达到了25561179像素,像素密度为460ppi,为用户提供了清…

一、菜单扩展

一、创建文件夹 创建一个名为Editor的文件夹。unity会默认这个名字为工程文件夹 二、创建代码 实现点击unity菜单,对应代码的方法 引用命名空间;使用这个menuitem 注:必须有一个子路径,不然会报错 这里是这个方法的参数 每一个…

并发式服务器

并发式服务器是一种设计用来同时处理多个客户端请求的服务器。这种服务器能够提高资源利用率和响应速度,适用于需要服务大量用户的网络应用。以下是并发式服务器的一些关键特点: 多任务处理:并发式服务器能够同时处理多个任务或请求&#xff…

【Python】成功解决 ModuleNotFoundError: No module named ‘lpips‘

【Python】成功解决 ModuleNotFoundError: No module named ‘lpips’ 下滑即可查看博客内容 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇 🎓 博主简介:98…

LDR ,DTR 指令详解 (17)

arm 的 大致的架构。 LDR{条件} 目的寄存器&#xff0c; <存储器地址> 功能&#xff1a; 将存储器的一个32的数据&#xff0c;保存到寄存器中。 但是这条指令还有另外一个作用。 如果 目的寄存器是PC的话&#xff0c;而从内存中读到的数据是一块内存的地址&#xff0…

正则表达式模块re及其应用

正则表达式是一种强大的文本处理工具&#xff0c;能够用来匹配、查找、替换复杂的文本模式。Python中的正则表达式由re模块提供。 以下是一些常用的方法及示例&#xff1a; 一. 常用方法 re.match() 从头开始匹配re.search() 搜索第一个匹配串re.findall() 查找所有匹配项re…

代码随想录Day 27|贪心算法,题目:455.分发饼干、376.摆动序列、53.最大子序和

提示&#xff1a;DDU&#xff0c;供自己复习使用。欢迎大家前来讨论~ 文章目录 贪心算法Part01一、理论基础1.1 什么是贪心贪心算法解法&#xff1a;动态规划解法&#xff1a; 1.2 贪心一般解题步骤 二、题目题目一&#xff1a;455.分发饼干解题思路&#xff1a;其他思路 题目…

【Datawhale AI夏令营第五期】 CV方向 Task02学习笔记 精读Baseline 建模方案解读与进阶

【Datawhale AI夏令营第五期】 CV方向 Task02学习笔记 精读Baseline 建模方案解读与进阶 教程&#xff1a; 链接&#xff1a; https://linklearner.com/activity/16/16/68 传送门 之前我看原画课的时候&#xff0c;造型的部分就跟我们说&#xff0c;让我们日常观察事物的时候…

海运系统:海运拼箱 小批量货物的海运奥秘

在国际海运运输的广阔领域中&#xff0c;海运拼箱作为一种灵活且经济的运输方式&#xff0c;尤其适用于那些货物量不大或体积不足以单独填满一个标准集装箱的场景。这种运输模式不仅促进了国际贸易的便捷性&#xff0c;还通过资源共享的方式&#xff0c;有效降低了物流成本&…

p10 容器的基本命令

首先先拉取一个centos的镜像 命令&#xff1a;docker pull centos 新建容器并且启动 这里直接参考老师的命令吧 接下来是启动并且进入到容器当中去输入docker run -it centos /bin/bash这里是以交互的方式进入到容器中可以看到接下来的ls命令输出的东西就是一个Linux系统最…

Ansys Speos | 挡风玻璃光学畸变分析

附件下载 联系工作人员获取附件 此示例介绍了基于 TL 957 标准和43号法规&#xff08;ECE R43&#xff09;的挡风玻璃光学畸变分析的工作流程&#xff0c;以及 GitHub Ansys 光学自动化中提供的分析自动化工具。 如果您从未使用过任何 GitHub 仓库&#xff0c;可以根据光学自…

数据结构(邓俊辉)学习笔记】串 07——KMP算法:分摊分析

文章目录 1.失之粗糙2.精准估计 1.失之粗糙 以下&#xff0c;就来对 KMP 算法的性能做一分析。我们知道 KMP 算法的计算过程可以根据对齐位置相应的分为若干个阶段&#xff0c;然而每一个阶段所对应的计算量是有很大区别的。很快就会看到&#xff0c;如果只是简单地从最坏的角…

K8S的持久化存储

文章目录 一、持久化存储emptyDir实际操作 hostPath建立过程 NFS存储NFS 存储的优点NFS 存储的缺点具体操作 pv和pvcPersistent Volume (PV)使用场景 Persistent Volume Claim (PVC)使用场景 使用 PV 和 PVC 的场景实际操作 StorageClassStorageClass 概述应用场景实际应用 一、…