第4章 决策树

文章目录

  • 4.1 基本流程
  • 4.2 划分选择
    • 4.2.1 信息增益
    • 4.2.2 增益率
    • 4.2.3 基尼指数
  • 4.3 剪枝处理
    • 4.3.1 预剪枝
    • 4.3.2 后剪枝
  • 4.4 连续与缺失值
    • 4.4.1 连续值处理
    • 4.4.2 缺失值处理
  • 4.5 多变量决策树
  • 4.6 阅读材料

4.1 基本流程

  • 决策树也称判定树,是一类常见的机器学习方法。
  • 决策树是基于树结构来进行决策的,这恰是人类在面临决策问题时一种很自然的处理机制。
  • 决策的最终结论对应了我们所希望的判定结果,决策过程中提出的每个判定问题都是对某个属性的测试,每个测试结果考虑范围是在上次决策结果限定范围内。
  • 叶结点对应于决策结果,其他每个结点对应于一个属性测试。
  • 决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循分而治之的策略。
  • 在这里插入图片描述

4.2 划分选择

4.2.1 信息增益

“信息熵”是度量样本集合纯度常用的一种指标。
在这里插入图片描述

信息增益
在这里插入图片描述
一般而言,信息增益越大,则意味着使用属性a来进行划分所获得的“纯度提升”越大。因此,可用信息增益来进行决策树的划分属性选择。
在这里插入图片描述

4.2.2 增益率

  • 信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好带来的不利影响,著名的C4.5决策树算法不直接使用信息增益,而是使用增益率来选择最优划分属性。
  • 增益率定义为:在这里插入图片描述

增益率准则对可取数目较少的属性有所偏好,因此C4.5算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。

4.2.3 基尼指数

CART决策树使用“基尼指数”来选择划分属性。数据集D的纯度可用基尼值来度量:
在这里插入图片描述
Gini(D)越小,数据集的纯度越高。
属性a的基尼指数定义为:
在这里插入图片描述
在候选属性集合A中,选择那个使得划分后基尼指数最小的属性作为最优划分属性,即:
在这里插入图片描述

4.3 剪枝处理

剪枝是决策树学习算法对付过拟合的手段。

留出法:预留一部分数据用作验证集以进行性能评估。

4.3.1 预剪枝

预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点。

4.3.2 后剪枝

后剪枝则是先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若该结点对应得子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。

4.4 连续与缺失值

4.4.1 连续值处理

由于连续属性的可取数目不再有限,因此不能直接根据连续属性可取值来对结点进行划分。此时,连续属性离散化技术可派上用场。最简单的策略是采用二分法对连续属性进行处理,这正是C4.5决策树算法中采用的机制。

4.4.2 缺失值处理

离散值:众数填充、相关性最高填充。

连续值:中位数填充、相关性最高的列做线性回归进行估计。

4.5 多变量决策树

4.6 阅读材料

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

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

相关文章

【小沐学Python】Python实现Web图表功能(Dash)

文章目录 1、简介2、安装3、功能示例3.1 Hello World3.2 连接到数据3.3 可视化数据3.4 控件和回调3.5 设置应用的样式3.5.1 HTML and CSS3.5.2 Dash Design Kit (DDK)3.5.3 Dash Bootstrap Components3.5.4 Dash Mantine Components 4、更多示例4.1 Basic Dashboard4.2 Using C…

MyLife - Docker安装Redis

Docker安装Redis 个人觉得像reids之类的基础设施在线上环境直接物理机安装使用可能会好些。但是在开发测试环境用docker容器还是比较方便的。这里学习下docker安装redis使用。 1. Redis 镜像库地址 Redis 镜像库地址:https://hub.docker.com/_/redis/tags 这里是官方…

用go获取IPv4地址,WLAN的IPv4地址,本机公网IP地址,本机空闲端口详解

文章目录 获取IPv4地址获取WLAN的IPv4地址获取本机公网IP地址获取本机空闲端口 获取IPv4地址 下面的代码会打印出本机所有的IPv4地址。这个方法可能会返回多个IP地址,因为一台机器可能有多个网络接口,每个接口可能有一个或多个IP地址。 package mainim…

GO脚本-模拟鼠标键盘

01GetCoordinate 获取坐标 package mainimport ("github.com/go-vgo/robotgo" )func main() {// 获取当前鼠标所在的位置x, y : robotgo.GetMousePos()println(x:, x, y:, y)}02GetColor 获取坐标颜色 package mainimport ("fmt&quo…

AnyDesk密钥

最近最新的密钥:7K2CV32ER6T8F8I 这款软件应该是目前用的最好的可以免费的软件了,记录一下密钥

flink以增量+全量的方式更新广播状态

背景 flink在实现本地内存和db同步配置表信息时,想要做到类似于增量(保证实时性) 全量(保证和DB数据一致)的效果,那么我们如何通过flink的广播状态外部定时器定时全量同步的方式来实现呢? 实现增量全量的效果 package wikiedits.schedule…

matlab高斯消元法求解线性方程组

高斯消元法的基本原理是通过一系列行变换将线性方程组的增广矩阵转化为简化行阶梯形式,从而得到方程组的解。其核心思想是利用矩阵的行变换操作,逐步消除未知数的系数,使得方程组的求解变得更加简单。 首先,给定系数矩阵A和常数向…

Python实现RNN算法对MFCC特征的简单语音识别

Python实现RNN算法对MFCC特征的简单语音识别 1、实现步骤 借助深度学习库 TensorFlow/Keras 来构建模型 1.对标签进行编码,将文本标签转换为整数标签。 2.对 MFCC 特征数据进行填充或截断,使其长度一致,以便于输入到 RNN 模型中 3.如果是二维数据需要转成三维: Simpl…

Python 图形化界面基础篇:创建自定义主题

Python 图形化界面基础篇:创建自定义主题 引言 Tkinter 库简介步骤1:导入 Tkinter 模块步骤2:创建 Tkinter 窗口步骤3:创建自定义主题步骤4:创建使用自定义主题的部件 完整示例代码代码解释结论 引言 在图形用户界面&…

XPS常见问题与解答-科学指南针

在做X 射线光电子能谱(XPS)测试时,科学指南针检测平台工作人员在与很多同学沟通中了解到,好多同学仅仅是通过文献或者师兄师姐的推荐对XPS测试有了解,但是对于其原理还属于小白阶段,针对此,科学指南针检测平台团队组织…

数据库查找、增加等基本操作

1、查询 SELECT column_name(s) FROM table_name WHERE condition; //如 SELECT * FROM USE database_name.user2; 2、增加 优点是可以将数据添加到表中,而不会影响现有数据。缺点是如果您需要将大量数据添加到表中,这可能会导致性能下降。 INSERT …

如何使用jest

最近在研究单元测试,虽说前端如果不是大且的项目不必要加,但至少得会,因此花了些时间研究,以下是我总结jest的使用。 jest是什么? Jest是 Facebook 的一套开源的 JavaScript 测试框架, 它自动集成了断言、…

【重拾C语言】六、批量数据组织(一)数组(数组类型、声明与操作、多维数组;典例:杨辉三角、矩阵乘积、消去法)

目录 前言 六、批量数据组织——数组 6.1 成绩统计——数组类型 6.1.1 数组类型 6.1.2 数组声明与操作 6.1.3 成绩统计 6.2 统计多科成绩——多维数组 6.3 程序设计实例 6.3.1 杨辉三角形 6.3.2 矩阵乘积 6.3.3 消去法 6.4 线性表——分类与检索 前言 ChatGPT C语…

Hadoop作业篇(一)

一、选择题 1. 以下哪一项不属于Hadoop可以运行的模式__C____。 A. 单机(本地)模式 B. 伪分布式模式 C. 互联模式 D. 分布式模式 C. 互联模式 不属于Hadoop可以运行的模式。 Hadoop主要有四种运行模式: A. 单机(本地&#xf…

基于SpringBoot的桂林旅游景点导游平台

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 景点类型管理 景点信息管理 线路推荐管理 用户注册 线路推荐 论坛交流 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实…

FreeRTOS学习笔记(一)

一、基础知识思维导图 vtaskdelay函数会开启中断,所以在临界区不能用vtaskdelay 二、任务的创建与删除 2.1、任务的动态创建与删除 ........#define START_TASK_PRIO 1 #define START_TASK_STACK_SIZE 128 TaskHandle_t start_task_handler; void …

UNIQUE VISION Programming Contest 2023 Autumn(AtCoder Beginner Contest 323)

A - Weak Beats 链接 : A - Weak Beats 思路 : 模拟即可,如果在偶数位上出现了非0得元素&#xff0c;直接输出"No"后返回即可&#xff0c;循环顺利结束的话&#xff0c;就直接输出"Yes"; 代码 : #include<bits/stdc.h> #define IOS ios::sy…

WebSocket介绍及部署

WebSocket是一种在单个TCP连接上进行全双工通信的协议&#xff0c;其设计的目的是在Web浏览器和Web服务器之间进行实时通信&#xff08;实时Web&#xff09;。 WebSocket协议的优点包括&#xff1a; 1. 更高效的网络利用率&#xff1a;与HTTP相比&#xff0c;WebSocket的握手…

Flutter AI五子棋

前言 在上一篇文章中&#xff0c;讲解了如何实现双人在本地对战的五子棋&#xff0c;但是只有一个人的时候就不太好玩&#xff0c;同时博主也没有把五子棋相关的文章写过瘾。那么这篇文章&#xff0c;我们来实现一个功能更加丰富的五子棋吧&#xff01;在设计五子棋的算法方面&…

docker搭建Jenkins及基本使用

1. 搭建 查询镜像 docker search jenkins下载镜像 docker pull jenkins/jenkins启动容器 #创建文件夹 mkdir -p /home/jenkins_home #权限 chmod 777 /home/jenkins_home #启动Jenkins docker run -d -uroot -p 9095:8080 -p 50000:50000 --name jenkins -v /home/jenkins_home…