机器学习——决策树原理及CART算法

news2024/11/18 20:41:31

问:CART决策树可以有多个分支结构。

答:错误。CART决策树每个内部节点只能有两个分支结构,这些分支分别对应于二进制判定的是或否。因此,CART决策树的每个节点将数据集分成两个较小的子集,其中一个子集满足某种特定条件,而另一个子集不满足该条件。

决策树

决策树是一种基本的分类与回归的算法,其模型呈树形结构,在分类问题种,表示基于特征对实例进行分类的过程,可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布

分类与回归一个比较浅层的区别是回归针对连续变量,分类针对离散变量

在学习的时候,利用训练数据,根据损失函数最小化原则建立决策树模型。

在预测的时候,对新的数据,利用决策树模型进行分类

决策树的学习通常包括3个步骤:特征选择、决策树的生成、决策树的剪枝

决策树学习思想主要来自ID3算法、C4.5算法以及CART算法

CART决策树

CART全称为(classification and regression tree),即分类回归树模型,其决策树模型可应用与分类也可应用于回归

分类: 离散

回归: 连续

1.分类树

因为每次选择该特征中一个取值对该特征进行二分

与ID3使用信息增益不同,CART分类树生成算法使用基尼指数选择最优特征和决定该特征的最优切分点
 

1.1 基尼系数

基尼系数公式的定义如下:

 

1.1 特征离散

如果特征是离散的,那么它就是按照特征的可选值进行划分节点,该特征有几个离散值,那么就划分成几个节点,和ID3、C4.5决策树一样。

1.2 特征连续

如果特征值是连续的,划分节点时就不能够按照特征的可选数量进行分割节点,因为连续特征有很多可选值,所以肯定不能和离散特征一样的分割方式,它是采用二叉树的方式,每次按照连续特征分成两个分支,分割方式为将待分割特征的所有值从小到大排序,然后选中其中一个值作为划分点,将样本划分为两个部分。

比如说,有一列特征A,值为 [ 1 , 5 , 2 , 6 , 8 , 3 ] 按照顺序进行排序,[ 1 , 2 , 3 , 5 , 6 , 8 ] ,所以可选的值很多,我们假设选中3作为划分点,将原始样本划分为:[ 1 , 2 , 3 ] 和 [ 5 , 6 , 8 ] 。

按照连续型特征分割后然后在用基尼系数进行评估。

2.回归树


其实回归树就是标签为连续型的,所以此时不能够使用基尼系数、熵这种的概率评估作为评估指标,因为不是分类不能够利用古典概型求出概率,所以我们考虑使用均方误差作为特征划分的好坏,将划分后的每个节点所有样本的均方误差之和之前没划分的节点的均方误差做差来代替基尼系数。

之前分类问题是计算所有特征的信息增益,此时我们会计算每个特征按照每个划分点的均方误差:

上面的j是不同的特征,s是对应每个特征可供选择的划分点,因为一个连续特征的值很多,所以划分点很多,要选择最优的。

括号内的意思就是找出针对特征j的最优划分点s,采用均方误差,最外层是特征,计算不同特征。

回归的比分类相对麻烦一些,分类只需要计算每个特征的信息增益,回归是计算每个特征的均方误差增益,但是它多了一个步骤就是求每个特征增益的时候还要找出最优划分值s。

这样生成的树成为最小二乘回归树。

三、剪枝算法

 

 

 

 

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

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

相关文章

【系分知识】需求评审

目录 背景介绍标题目的与意义方法与流程成果展示 背景介绍 软件开发是一项复杂的工作,需要涉及到众多的人员和团队。在这个过程中,需求评审是保证项目质量和进度的关键环节。它是在项目启动之前,对所有的需求进行全面的评估和审查&#xff0c…

C#异步编程之数据并行及任务并行

基于Parallel.ForEach的数据并行使用 1.数据非并行 var items new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; DateTime t1 DateTime.Now; foreach (var item in items) {Console.WriteLine("数据非并行输出:{0}", item); } 2.数据并行,只要使用Parallel.ForEach P…

Unity UI -- (2) 给场景加一个标题

添加Text并将其放到正中位置 我们来增加项目的第一个UI元素:标题。 1. 在Hierarchy中,点击右键,选择UI > Text - TextMeshPro。如果弹出了一个TextMeshPro Importer窗口,选择Import TMP Essentials。TextMeshPro(TM…

优雅地处理参数传递:Spring Boot中的技巧

目录 一:四种传参方式 1.1:在 URL 中传递参数 1.2:PathVariable 传递参数(Restful 风格) 1.3:在请求体中传递参数 1.4:在请求头中传递参数 二:文件上传接口测试 2.1 : test.jav…

5_推荐系统算法详解

推荐系统算法详解 主要内容常用推荐算法分类(重点)基于人口统计学的推荐算法用户画像 基于内容的推荐算法相似度计算 基于内容推荐系统的高层次结构特征工程数值型特征处理 类别型特征处理时间型特征处理统计型特征处理推荐系统常见反馈数据基于 UGC 的推…

【c语言】组件化打包—动态链接库dll

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c语言系列专栏&#xff1a;c语言之路重点知识整合 &#x…

Qt创建多线程的两种方法

Qt创建多线程的两种方法 [1] Qt创建多线程的两种方法1.摘要2.Qt多线程方法1 继承QThread2.1写一个继承于QThread的线程2.2 QThread的几个函数quit、exit、terminate函数2.3 正确的终止一个线程2.4 如何正确启动一个线程2.5 继承QThread的一些总结 Qt使用多线程的一些心得——2.…

什么是边缘计算盒子?边缘计算盒子可以做什么?一文带你了解边缘计算云服务器 ECS

上文&#xff0c;我们已经为大家介绍了什么是边缘计算、边缘计算的诞生、以及边缘计算与CDN之间的关系&#xff0c;感兴趣的小伙伴欢迎阅读以往文章&#xff1a; 边缘计算节点是啥&#xff1f;边缘计算与CDN有什么关系&#xff1f;一文带你了解边缘计算节点BEC&#xff08;1&am…

在线PS软件有哪些不错的推荐

许多新的UI设计合作伙伴非常关心在线ps工具的选择。现在市场上有各种各样的ps网页替代工具&#xff0c;数量众多&#xff0c;令人眼花缭乱。本文简要介绍了10个在线PS工具&#xff0c;我相信一定有一个适合你&#xff01; 1.即时设计 即时设计是一款在线 UI 设计工具&#xf…

渗透测试--5.1.Crunch创建密码字典

目录 1.crunch简介 2.常用命令 3.使用实例 &#xff08;1&#xff09;.生成字母组合 &#xff08;2&#xff09;. 生成缺位的手机号码 &#xff08;3&#xff09;.生成pass01-pass99所有组合 &#xff08;4&#xff09;.生成六位密码&#xff0c;其中前四位为pass&#xf…

docker-compose部署开发环境

docker-compose部署开发环境 部署nginx欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义…

Java内部类与匿名类

内部类 定义&#xff1a; 一个类的内部又完整的嵌套了另一个类结构&#xff0c;被嵌套的类就被我们称为内部类&#xff0c;嵌套内部类的类被我们称为外部类 //外部类 class Outer {//内部类class Inner{} }package Innerclass;//外部其他类 public class c1 { }class Outer {/…

数据结构--线段树--洛谷模板线段树1-2

写在前面&#xff1a; 学习之前需要知道以下内容&#xff1a; 1. 递归 2. 二叉树 文章目录 线段树介绍用途建树修改单点修改区间修改 查询 代码实现。建树更新lazy传递查询优化一下 练习洛谷 P3372 【模板】线段树 1题目描述题解 【模板】线段树 2题目描述题解 线段树 介绍 …

生产流程图怎么制作?思路提供

生产流程图是一种图表&#xff0c;用来展示生产流程中的各个环节及其顺序。这种图表可以帮助企业管理者更好地了解生产过程中的各个环节&#xff0c;从而更好地进行管理和优化。生产流程图通常包括各个生产环节的名称、所需时间、参与人员、设备和工具等信息。 在制作生产流程图…

虚拟机 03 补充 redis的命令

Redis的操作命令&#xff1a; Redis的启动命令&#xff1a;redis-server redis.conf 进入redis的客户端操作命令&#xff1a;redis-cli -p 6379 退出redis客户端的操作命令&#xff1a;exit或者ctrlc 关闭redis的命令&#xff1a;redis-cli -p 6379 shutdown Redis数据操作命令…

免费优质的网页设计素材网站推荐

找到一个免费优质的网页设计素材网站并不容易。 有些网站要么需要网站的会员&#xff0c;要么设计素材质量差。本文整理总结了10个免费的网页设计材料网站&#xff0c;希望给大家带来一些帮助。 即时设计资源社区 即时设计资源社区是由在线协同设计软件即时设计推出的设计社…

2023乡村振兴三点:粮食安全,数字乡村,特色产业

2023乡村振兴三条&#xff1a;粮食安全&#xff0c;数字乡村&#xff0c;特色产业 人工智能总趋势在减少就业 乡村生活综合服务领域&#xff5e; 可能是以后吸纳劳动力的重要领域 农业现代化最后在实现中… 趣讲大白话&#xff1a;人没事干&#xff0c;咋办 【趣讲信息科技168期…

基于 debian 发行版本的密码设置策略

密码过期时间设置 修改 /etc/login.defs 中的选项 PASS_MAX_DAYS 99999 代表不过期 我们将该值改为 90 密码复杂度设置 需要安装 pam 扩展包 libpam-pwquality 或 libpam-cracklib 。 这里选择安装 libpam-cracklib sudo apt updatesudo apt install libpam-cracklib查看…

虚拟机 03 redis安装和启动服务

redis在linux上的安装&#xff1a; 01.先找到redis的压缩文件 这里的是gz格式的。 02.在linux系统中&#xff0c;先去切换到根目录先 使用命令 cd / 再切换到usr/local/src中 直接把压缩文件拖入到linux系统的命令行中 src文件中会出现redis-5.0.4.tar.gz的文件 03.对这个文…

arm作业

用for循环实现1~100之间的和13BA for(i1;i<100;i) { sum sumi; }