第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…

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

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

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

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

如何使用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语…

基于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 …

Flutter AI五子棋

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

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…

【Qt】三种方式实现抽奖小游戏

简介 本文章是基本Qt与C实现一个抽奖小游戏,用到的知识点在此前发布的几篇文章。 下面是跳转链接: 【Qt控件之QLabel】用法及技巧链接: https://blog.csdn.net/MrHHHHHH/article/details/133691441?spm1001.2014.3001.5501 【Qt控件之QPus…

Matlab论文插图绘制模板第118期—进阶气泡图

之前的文章中,分享过Matlab气泡图的绘制模板: 图虽说好看,但有一个缺点:需要手动调节两个图例的位置。 为了解决这一问题,我们不妨结合前段时间分享的紧凑排列多子图的绘制模板: 从而达到自动对齐排列的效…

【版本控制工具一】Git 安装注册及使用

文章目录 一、Git 、Github、Gitee1.1 概述1.2 码云 相对于 github 的优势 二、Github 或 Gitee注册2.1 注册2.2 创建仓库 三、Git下载与安装四、创建本地仓库 一、Git 、Github、Gitee 1.1 概述 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或…

Multi-Grade Deep Learning for Partial Differential Equations

论文阅读:Multi-Grade Deep Learning for Partial Differential Equations with Applications to the Burgers Equation Multi-Grade Deep Learning for Partial Differential Equations with Applications to the Burgers Equation符号定义偏微分方程定义FNN定义PI…

网络流量安全分析-工作组异常

在网络中,工作组异常分析具有重要意义。以下是网络中工作组异常分析的几个关键点: 检测网络攻击:网络中的工作组异常可能是由恶意活动引起的,如网络攻击、病毒感染、黑客入侵等。通过对工作组异常的监控和分析,可以快…

Git基础

1、本地版本控制系统、集中式版本控制系统与分布式版本控制系统 文档: Git - 关于版本控制 1. 本地版本控制系统(Local Version Control System): 本地版本控制系统是最简单的版本控制系统,它基于文件的复制…

Vue-2.1scoped样式冲突

默认情况&#xff1a;写在组件中的样式会全局生效->因此很容易造成多个组件之间的样式冲突问题 1.全局样式&#xff1a;默认组件中的样式会作用到全局 2.局部样式&#xff1a;可以给组件加上scoped属性&#xff0c;可以让样式只作用于当前组件 <style scoped> <…

轻松实现时间录入自由!如何在Microsoft Word中轻松插入格式化的日期和时间

在文档中插入当前日期和时间有几个原因。你可能希望将其插入信函或页眉或页脚中。无论是什么原因&#xff0c;Word都可以轻松地将日期和时间插入文档。 如果希望在打开或打印文档时自动更新日期和时间&#xff0c;可以将其作为自动更新的字段插入。该字段也可以随时手动更新。…

H5逆向之远程RPC

引言前一讲说过H5 怎么去抓包,逆向分析。其中说到RPC。这一节详细讲一下。有一种情况,JS 比较复杂,混淆的厉害。 这个时候就用到RPC。原理就是,hook web 浏览器,直接调用js 里边的方法。 Node 服务。为什么用到Node 服务,先来看下这架构 Node 对外提供各种接口,外部可以…