当前位置: 首页 > news >正文

决策树基础知识点解读

目录

ID3算法

C4.5算法

CART树


ID3算法

定义:在决策树各个结点上应用信息增益准则选择特征,递归的构建决策树。该决策树是多分支分类。

信息增益

意义:给定特征X的条件下,使得类别Y的信息的不确定性减少的程度。取值越大越好。

定义:集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D/A)之差。

Ent(D)=-\sum_{k=1}^{|Y|}p_klog_2p_k

Gain(D,a)=Ent(D)-\sum_{v=1}^{V}\frac{|D^v|}{|D|}Ent(D^v)

缺点

  • 分支过程中偏向取值较多的属性
  • 无法处理连续值和缺失值,只能处理离散值
  • 对缺失值敏感。

C4.5算法

定义:C4.5算法与ID3算法类似,C4.5算法使用信息增益比来选择特征。C4.5算法先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择信息增益比最大的属性。该决策树是多分支分类。

信息增益比

定义:在信息增益的基础上,再除以H(D);取值越大越好

Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)}

IV(a)=-\sum_{v=1}^{V}\frac{D^v}{D}log\frac{D^v}{D}

连续属性的划分:采用"二分"法对连续属性进行离散化,划分点的选取可选使信息增益最大化的划分点。例:16个连续属性值选15个划分点。

缺点

  • 分支过程中偏向取值较少的属性;
  • 适合小样本
  • 要进行剪枝操作;要对属性进行排序

CART树

CART树既可以用于分类,也可用于回归。CART树属于二叉树。

回归树

定义:使用平方误差来构建决策树,使用min(J){min(c1)sum(y-c1)^2+min(c2)sum(y-c2)^2}来选择最优划分变量和最优划分点

预测:选择叶子节点的均值或者中位数作为当前节点的预测类别(通常都是均值)

分类树

定义:使用基尼系数选择最优特征。

基尼系数:

定义:从数据集中随机抽取两个样本,其类别标记不一致的概率。基尼系数越小,则样本集合的不确定性越小。

公式:1-sum(K){P(k)*P(k)},P(k)是属于第k个类别的概率,共有K个类别。

预测:选择叶子节点里概率最大的类别作为当前节点的预测类别;选择叶子节点中所有样本所属类别最多的那一类。

缺点:适合大样本

预剪枝:

过程:进行分支前,计算验证机准确率;分支后,计算验证机准确率,若变大,则进行分支,反之。

缺点:欠拟合风险较高。

后剪枝:

过程:当前决策树计算非叶子节点再验证集上的准确率,讲该非叶子节点替换为叶子节点后,计算验证机的准确率,若变大,则进行剪枝,反之。

决策树对缺失值的处理

  • 删除缺失数据
  • 用其他值猜测缺失项的可能值,如中位数、众数等,或者用已有数据构建模型,然后对缺失值进行预测
  • 概率化:C4.5算法中,按比例对所有样本分配权重
  • xgboost中,将缺失值分别导流到各个分支中,然后计算每个分支对损失函数的影响,该该缺失值分配到使得损失函数最小的分支。

树模型的优缺点

优点

  • 可解释性强
  • 可处理混合类型特征
  • 不需要归一化
  • 有特征组合、特征选择的作用
  • 能够处理缺失值
  • 对异常点鲁棒
  • 可扩展性强,容易并行

缺点

  • 却反平滑处理(回归预测的输出值只能输出若干种值)
  • 不适合处理高维稀疏数据

树模型能够处理缺失值吗?(ID3、c4.5、cart、rf到底是如何处理缺失值的? - 知乎)

1.ID3不能处理

2.C4.5的处理方式:概率权重思想

  • 特征值缺失,如何进行特征选择?用没有缺失的样本子集计算信息增益,再乘以权重(无缺失样本的比例),即为特征再数据集上的信息增益。
  • 选定该划分特征,对于缺失该特征值的样本如何归类?将该缺失值同时划分到所有子节点种,并调整该缺失样本权重(该子节点在特征上取值的样本比例),即以不同概率将样本划分到所有节点种。

3.CART中可用surrogate splits(替代划分)来处理

  • 特征值缺失,如何进行划分特征的选择?用没有缺失的样本子集来计算Gini指数(均方误差),再乘以一个权重(无缺失样本的比例),即为特征再数据集上的Gini指数(均方误差)
  • 选定该划分特征,对于缺失该特征值的样本如何归类?首先,需要遍历剩余的特征,但是仅仅再完全没有缺失值的特征上进行选择,我们选择其中能够与目标缺失特征分裂之后效果最接近的特征值代替缺失值;如果不满足这个条件,缺失样本默认进入样本个数较多的叶节点。

对于sklearn库来说,是不能的,需要填充;而对于xgboost这种是可以的。

预测截断,遇到特征有缺失情况,如何处理?

样本默认分到右子树。

相关文章:

决策树基础知识点解读

目录 ID3算法 C4.5算法 CART树 ID3算法 定义:在决策树各个结点上应用信息增益准则选择特征,递归的构建决策树。该决策树是多分支分类。 信息增益 意义:给定特征X的条件下,使得类别Y的信息的不确定性减少的程度。取值越大越好。 定义&am…...

【C++】入门知识之 命名空间与输入输出

前言C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(object oriented …...

redis持久化的几种方式

一、简介 Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持…...

数据持久化层--查询分离

1. 业务场景 1)查询慢。当时工单数据库里面有1000万左右的客服工单时,每次查询时需要关联其他近10个表,一次查询平均花费13秒左右。 2)打开工单慢。工单打开以后需要调用多个接口,分别将用户信息、订单信息以及其他客服创建的单据信息列出来(如退款、赔偿、充值、投诉等…...

一文读懂Js中的this指向

前言 this关键字是一个非常重要的语法点。毫不夸张地说,不理解它的含义,大部分开发任务都无法完成。 简单说,this就是属性或方法“当前”所在的对象。 this.property上面代码中,this就代表property属性当前所在的对象。 下面是…...

零费用、零学习成本,用户快速可自定义json格式

随着物联网的发展,越来越多的设备被连接到互联网,数据量不断增加。这就需要有一种高效的方法来处理传输和处理这些数据。钡铼技术R40B边缘计算路由器,集成4G工业路由器、智能网关、RTU、DTU等产品多合一。支持边缘计算,它可以将计…...

2023年全国最新高校辅导员精选真题及答案25

百分百题库提供高校辅导员考试试题、辅导员考试预测题、高校辅导员考试真题、辅导员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 101.属于大学教师职业特征的是()。 A.教师劳动的复杂性 B.教师…...

二、数据结构-线性表

目录 🌻🌻一、线性表概述1.1 线性表的基本概念1.2 线性表的顺序存储1.2.1 线性表的基本运算在顺序表上的实现1.2.2 顺序表实现算法的分析1.2.3 单链表类型的定义1.2.4 线性表的基本运算在单链表上的实现1.3 其他运算在单链表上的实现1.3.1 建表1.3.2 删除…...

CGAL 点云上采样

目录一、算法原理1、主要函数2、参数解析二、代码实现三、结果展示一、算法原理 该方法对点集进行逐步上采样,同时根据法向量信息来检测边缘点,需要输入点云具有法线信息。在点云空洞填充和稀疏表面重建中具有较好的应用。 1、主要函数 头文件 #inclu…...

阿里云短信验证码实战

一、创建阿里云短信权限用户 1、登陆阿里云之后我们点击头像,接着点击AccessKey: 2、选择开始使用子用户 : 3、我们先要创建一个用户组: 4、依次点击新建的用户组——授权管理,给用户组授权,开通短信验证码服务…...

Android APP隐私合规检测工具Camille使用

目录一、简介二、环境准备常用使用方法一、简介 现如今APP隐私合规十分重要,各监管部门不断开展APP专项治理工作及核查通报,不合规的APP通知整改或直接下架。camille可以hook住Android敏感接口,检测是否第三方SDK调用。根据隐私合规的场景&a…...

手把手学会DFS (递归入门)

目录 算法介绍 递归实现指数型枚举 递归实现排列型枚举 递归实现组合型枚举 算法介绍 🧩DFS 即 Depth First Search ,中文又叫深度优先搜索,是一种沿着树的深度对其进行遍历,直到尽头之后再进行回溯,再走其他路线的…...

由《三体》太阳文明末日场景想到的……

《三体》电视剧正在热播,热度持续不退,豆瓣评分8.6,基本已经预定年度口碑最高的科幻题材剧;除了在国内多个平台播出外,还走出国门,成功“出海”,《人民日报》两会特刊都予以了高度赞扬。 上图红…...

es6的Proxy与Reflect

Proxy是在对目标对象的读取时,架设一层拦截,可以在读取对象中的任意一个属性时做一些额外的操作 Proxy与Object.defineProperty方式设置setter、getter方法不同的是,Proxy是对目标对象的整体拦截,而Object.defineProperty注重对对…...

Linux环境部署vue项目 + nginx访问(包含nginx配置简介)

1、本地打包、上传 # 打包命令不同项目有略微差别,核心命令 npm run build# 我们项目前端给配了测试、生产环境,测试环境打包命令是 npm run build:stage# 建议先看一下项目的README文件打包之后,得到一个文件夹,一般叫dist、也有…...

到底什么是跨域,如何解决跨域(常见的几种跨域解决方案)?

文章目录1、什么是跨域2、解决跨域的几种方案2.1、JSONP 方式解决跨域2.2、CORS 方式解决跨域(常见,通常仅需服务端修改即可)2.3、Nginx 反向代理解决跨域(推荐使用,配置简单)2.4、WebSocket 解决跨域2.5、…...

pm3包1.4版本发布----一个用于3组倾向性评分的R包

目前,本人写的第二个R包pm3包的1.4版本已经正式在CRAN上线,用于3组倾向评分匹配,只能3组不能多也不能少。 可以使用以下代码安装 install.packages("pm3")什么是倾向性评分匹配?倾向评分匹配(Propensity Sc…...

没有关系的话,那就去建立关系吧

今天给大家分享一道链表的好题--链表的深度拷贝,学会这道题,你的链表就可以达到优秀的水平了。力扣 先来理解一下题目意思,即建立一个新的单向链表,里面每个结点的值与对应的原链表相同,并且random指针也要指向新链表中…...

Vue项目

package.json : 描述这个NPM包的所有相关信息,包括作者、简介、包依赖、构建等信息,格式是严格的JSON格式。和java的maven的pom文件作用一样。 node_modules: 依赖需要下载后才能使用,存在依赖包的地方。使用npm install 安装依赖 babel.co…...

【webrtc】ICE 到VCMPacket的视频内存分配

ice的数据会在DataPacket 构造是进行内存分配和拷贝而后DataPacket 会传递给rtc模块处理rtc模块使用DataPacket 构造rtp包最终会给到OnReceivedPayloadData 进行rtp组帧。吊炸天的是DataPacket 竟然没有声明析构方法。RtpVideoStreamReceiver::OnReceivedPayloadData 的内存是外…...

C++虚函数机制与性能优化深度解析

1. C虚函数机制深度解析虚函数是C实现运行时多态的核心机制,它允许子类重写父类的方法,并在运行时根据对象实际类型调用正确的函数实现。这种动态绑定特性是面向对象编程中"一个接口,多种实现"思想的关键支撑。1.1 虚函数表(vtbl)的…...

2026 AI大会日程倒计时启动:3月锁定名额,6月关闭注册,8月关闭论文投稿(附各大会DDL对照表)

更多请点击: https://intelliparadigm.com 第一章:2026年AI技术大会时间地点汇总 全球人工智能领域正加速迈向规模化落地阶段,2026年将成为关键转折年份。各大权威机构与产业联盟已陆续公布年度旗舰会议日程,覆盖前沿研究、工程实…...

QtScrcpy:解锁跨设备协同的终极方案,实现30ms低延迟投屏

QtScrcpy:解锁跨设备协同的终极方案,实现30ms低延迟投屏 【免费下载链接】QtScrcpy Android real-time display control software 项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy 你是否曾经遇到过这样的困扰:想要在电脑…...

娱乐圈天降紫微星逆势而生,海棠山铁哥在无人看好中登巅峰

逆势而生 紫微星传奇“天降紫微星,从来不是被捧出来的,而是闯出来的。”紫微星的降临,从不是顺境中的锦上添花,而是逆境中的破局而生。 它无关资本堆砌的光环,无关流量炒作的热度,无关圈层人脉的加持&…...

C++面向对象编程实践:从零实现命令行文本编辑器

1. 项目概述与核心价值最近在整理硬盘,翻出来一个大学时期的老项目——一个用C写的命令行文本编辑器。这个项目当时是为了完成《面向对象程序设计》课程的实验作业而做的,名字就叫“Cpp_OOP_Labs”。现在回头看,虽然代码有些稚嫩,…...

基于MCP协议构建AI驱动的Google Drive自动化管理工具

1. 项目概述:当AI助手学会管理你的Google Drive 如果你和我一样,每天要在Google Drive里翻找文件、整理文档、处理同事的共享请求,那你肯定也想过:要是能像跟同事聊天一样,用自然语言来操作网盘就好了。比如&#xff…...

立创EDA专业版 vs 标准版:焊接辅助工具在团队协作与生产流程中能发挥多大作用?

立创EDA专业版 vs 标准版:焊接辅助工具在团队协作与生产流程中的实战价值 当硬件团队从原型设计转向小批量生产时,最常遇到的瓶颈往往不是技术实现,而是设计部门与生产部门之间的协作断层。一位资深硬件创业者曾分享过这样的经历:…...

AirPodsDesktop:Windows和Linux用户的终极AirPods体验解决方案

AirPodsDesktop:Windows和Linux用户的终极AirPods体验解决方案 【免费下载链接】AirPodsDesktop ☄️ AirPods desktop user experience enhancement program, for Windows and Linux (WIP) 项目地址: https://gitcode.com/gh_mirrors/ai/AirPodsDesktop 还在…...

ARM Cortex-A9预加载引擎与调试系统优化指南

1. ARM Cortex-A9预加载引擎深度解析 预加载引擎(Preload Engine,简称PLE)是ARM Cortex-A9处理器中一个可选的硬件模块,专门用于优化内存访问性能。它的核心功能是主动将特定内存区域的数据预加载到L2缓存接口,从而减少…...

手把手教你用STM32CubeMX和HAL库,给FreeModbus找个‘主心骨’

STM32CubeMX与HAL库构建FreeModbus主机协议栈实战指南 在工业自动化领域,Modbus协议因其简单可靠的特点成为设备通信的事实标准。许多开发者熟悉FreeModbus从机实现,但当项目需要主从一体或纯主机功能时,却面临开源资源匮乏的困境。本文将带您…...