【机器学习300问】136、C4.5虽然改善了ID3决策树算法的部分缺点,但还是有不足,请问还有更好的算法吗?CART算法构建决策树

一、C4.5算法仍存在的不足

(1)计算效率不高

        C4.5使用的信息增益率计算涉及熵的对数计算,特别是当属性值数量大时,计算成本较高。

(2)处理连续数值属性不够高效

        ID3算法只能处理离散属性,需要预先对连续属性进行离散化处理。C4.5虽然也能处理连续属性,但效率不高。

二、CART算法原理

        分类与回归树(Classification And Regression Trees,CART)算法是一种决策树构建方法。同时适用于分类和回归任务。它是机器学习中的监督学习算法。

(1)算法核心思想

        CART算法的核心思想是通过递归地选择最佳特征和阈值来分割数据集,直至满足预设的停止条件,最终形成一个二叉树结构。这个树结构可以用来做分类或预测连续值的回归。

(2)什么是基尼不纯度?

        基尼不纯度(Gini Impurity)是衡量数据集中类别的混乱程度的一种指标,用于决策树算法中确定最佳分裂特征。其计算公式如下:

        假设数据集共有K个类别,第k类样本所占的比例为p_k(其中\sum_{k=1}^{K}p_k=1)则该数据集的基尼不纯度G计算公式为:

G=\sum_{k=1}^{K} p_k(1-p_k)=1-\sum_{k=1}^{K}p_k^2

这个公式的直观理解是:

  • 每一个类别的概率p_k越大,它“纯净”的贡献(即p_k^2)就越大,而基尼不纯度作为整体的“不纯净”程度就越小;
  • 反之,如果各类别分布均匀,每个类别的概率都很小,那么基尼不纯度就会接近其最大值1,表示数据集非常“混乱”。

        在决策树构建过程中,会选择使得分割后两个子集的加权基尼不纯度之和最小的特征作为最佳分割特征。

(3)算法步骤

        CART算法的工作过程主要分为以下三个步骤:

① 特征选择与阈值确定

        在每个节点上,算法会遍历所有特征的所有可能分割点,计算分割后的不纯度或误差,并选择使得不纯度或误差降低最多的特征和分割点。

  • 对于分类任务,CART使用基尼不纯度作为衡量标准来选择最佳分割特征和分割点。基尼不纯度越低表示数据划分后类别分布越纯净。
  • 对于回归任务,CART使用均方误差作为衡量标准,寻找使得各子集残差平方和最小的分割点。

② 树的生成

        从根节点开始,根据选定的特征和分割点划分数据集,然后对每个子集重复此过程,直到满足停止条件,如节点中的样本属于同一类别、达到预设的最大深度、子集中的样本数小于某个阈值等。

③ 树的剪枝

        为了避免过拟合,CART使用后剪枝策略。即先生成一棵完整的树,然后自底向上地检查是否可以通过合并某些子树来降低测试集上的误差。剪枝的目的是找到一个子树,它在训练集上的性能可能略差,但在未知数据上的泛化能力更强。

三、CART算法如何解决前辈们遗留的问题

(1)处理连续数值属性

        CART算法能够直接处理连续属性,通过选择最优的分割点来划分数据(即确定节点阈值),而ID3算法只能处理离散属性,需要预先对连续属性进行离散化处理。C4.5虽然也能处理连续属性,但CART在处理连续属性时更为直接和高效。

(2)同时支持分类与回归

        CART算法不仅适用于分类任务,还能处理回归问题,即预测连续数值,这是ID3和C4.5所不具备的能力。这一灵活性拓宽了CART的应用场景。

(3)计算效率高

        CART使用基尼不纯度作为分裂标准,计算上相对简单,避免了ID3和C4.5信息增益计算中的对数运算,从而提高了效率。基尼不纯度在处理类别不平衡的数据集时表现得更为稳健。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32CUBEMX配置USB虚拟串口

STM32CUBEMX配置USB虚拟串口 cubemx上默认配置即可。 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 配置完后生成工程,主要就是要知道串口的收发接口就行了。 发送:CDC_Transmit_FS(),同时记得包含头文件#include “…

转运机器人:智能物流的得力助手

在物流行业,转运机器人已经成为提高转运效率、降低成本的重要工具。而富唯智能转运机器人凭借其出色的性能和智能化的设计,成为了众多企业的得力助手。 富唯智能转运机器人采用了先进的AMR控制系统,可以一体化控制移动机器人并实现与产线设备…

电脑提示vcomp140.dll丢失的几种有效的解决方法,轻松搞定dll问题

在电脑使用过程中,我们可能会遇到一些错误提示,其中之一就是找不到vcomp140.dll。那么,究竟什么是vcomp140.dll呢?为什么会出现找不到vcomp140.dll的情况呢?本文将从vcomp140.dll的定义、常见原因、对电脑的影响以及解…

go语言DAY7 字典Map 指针 结构体 函数

Go中Map底层原理剖析_go map底层实现-CSDN博客 目录 Map 键值对key,value 注意: map唯一确定的key值通过哈希运算得出哈希值 一、 map的声明及初始化: 二、 map的增删改查操作: 三、 map的赋值操作与切片对比: 四、 通用所有…

最佳学习率和Batch Size缩放中的激增现象

前言 《Surge Phenomenon in Optimal Learning Rate and Batch Size Scaling》原文地址GitHub项目地址Some-Paper-CN。本项目是译者在学习长时间序列预测、CV、NLP和机器学习过程中精读的一些论文,并对其进行了中文翻译。还有部分最佳示例教程。如果有帮助到大家&a…

C语言学习记录(十二)——指针与数组及字符串

文章目录 前言一、指针和数组二、指针和二维数组**行指针(数组指针)** 三、 字符指针和字符串四、指针数组 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示:以下是本篇文章正文内容,下面案例可供参考 一、指针和数组 在C语言中 &#xff0…

网盘挂载系统-知识资源系统-私域内容展示系统

系统介绍: 存储:一共支持约30款云盘存储,其中包括主流的(百度网盘、阿里云盘、夸克云盘、迅雷云盘、蓝奏云、天翼云盘),部分展示 以及特别的(一刻相册、对象存储、又拍云存储、SFTP、MEGA 网盘…

锁机制 -- 概述篇

锁机制 1、概述 ​  加锁是为了解决并发场景下,多个线程对同一资源同时进行操作,而导致同一线程多次操作出现结果不唯一的情况(一次操作包含多条指令)。结果不唯一发生的原因在于指令的错乱,前提条件是多线程环境及…

原子变量原理剖析

一、原子操作 原子操作保证指令以原子的方式执行,执行过程不被打断。先看一个实例,如下所示,如果thread_func_a和thread_func_b同时运行,执行完成后,i的值是多少? // test.c static int i 0;void thread…

013、MongoDB常用操作命令与高级特性深度解析

目录 MongoDB常用操作命令与高级特性深度解析 1. 数据库操作的深入探讨 1.1 数据库管理 1.1.1 数据库统计信息 1.1.2 数据库修复 1.1.3 数据库用户管理 1.2 数据库事务 2. 集合操作的高级特性 2.1 固定集合(Capped Collections) 2.2 集合验证(Schema Validation) 2.…

自组装mid360便捷化bag包采集设备

一、问题一:电脑太重,换nuc 采集mid360数据的过程中,发现了头疼的问题,得一手拿着电脑,一手拿着mid360来采集,实在是累胳膊。因此,网购了一个intel nuc, 具体型号是12wshi5000华尔街峡谷nuc12i…

Python私教张大鹏 PyWebIO通过事件回调实现表格的编辑和删除功能

从上面可以看出,PyWebIO把交互分成了输入和输出两部分:输入函数为阻塞式调用,会在用户浏览器上显示一个表单,在用户提交表单之前输入函数将不会返回;输出函数将内容实时输出至浏览器。这种交互方式和控制台程序是一致的…

在Ubuntu 18.04.6 LTS 交叉编译生成Windows 11下的gdb 8.1.1

1. 安装mingw sudo apt-get install mingw-w64 2. 下载 gdb 8.1.1源码 https://ftp.gnu.org/gnu/gdb/gdb-8.1.1.tar.gz 解压命令 tar -xf gdb-8.1.1.tar.gz 进入目录,创建build目录: hq@hq:~/gdb-8.1.1/build$ 执行配置 ../confi

视频云计算的未来发展趋势:智能化、个性化与云端协同助力智慧城市安防监控

随着信息技术的飞速发展,云计算作为一种全新的服务模式,正在改变我们处理数据和信息的方式。而视频云计算技术,作为云计算领域的一个重要分支,以其独特的优势,正在逐步渗透到我们生活的各个领域。 一、视频云计算技术…

[leetcode hot 150]第一百二十二题,买卖股票的最佳时机Ⅱ

题目: 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能获得的 最大…

javaScript利用indexOf()查找字符串的某个字符出现的位置

1 创建字符串 2 利用indexof()查询字符串的字符 3 利用while循环判断indexOf是否等于-1,不等于-1就打印一次并且索引号1去查下一个字符 //创建字符串var str1234567812311231;var indexstr.indexOf(1);//查询该字符while(index !-1)//indexOf()没有查到会返回-1{…

企业本地大模型用Ollama+Open WebUI+Stable Diffusion可视化问答及画图

最近在尝试搭建公司内部用户的大模型,可视化回答,并让它能画图出来, 主要包括四块: Ollama 管理和下载各个模型的工具Open WebUI 友好的对话界面Stable Diffusion 绘图工具Docker 部署在容器里,提高效率以上运行环境Win10, Ollama,SD直接装在windows10下, 然后安装Docker…

Linux中彩色打印

看之前关注下公众号呗 第1部分:引言 1.1 Python在文本处理中的重要性 Python作为一种广泛使用的高级编程语言,以其简洁的语法和强大的功能在文本处理领域占有一席之地。无论是数据清洗、自动化脚本编写,还是复杂的文本分析,Py…

甄选范文“论云上自动化运维及其应用”,软考高级论文,系统架构设计师论文

论文真题 云上自动化运维是传统IT运维和DevOps的延伸,通过云原生架构实现运维的再进化。云上自动化运维可以有效帮助企业降低IT运维成本,提升系统的灵活度,以及系统的交付速度,增强系统的可靠性,构建更加安全、可信、开放的业务平台。 请围绕“云上自动化运维及其应用”…

Typora failed to export as pdf. undefined

变换版本并没有用,调整图片大小没有用 我看到一个博客后尝试出方案 我的方法 解决:从上图中的A4,变为其他,然后变回A4 然后到处成功,Amazing! 参考: Typora 导出PDF 报错 failed to export…