决策树(二):CART回归树与Python代码

2023-12-31 17:48

本文主要是介绍决策树(二):CART回归树与Python代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上一篇介绍了决策树的基本概念,特征划分标准及ID3、C4.5和CART分类树的算法,本文着重对CART回归树的内容进行补充。

本文概览
首先介绍CART回归树的算法,然后是创建CART回归树的主要步骤,最后是实现该过程的Python代码。

一、CART回归树算法

CART回归树处理的是回归问题,数据集的标签不再是离散的类别值,而是一系列的连续值的集合。
CART回归树不同于线性回归模型,不是通过拟合所有的样本点来得到一个最终模型进行预测,它是一类基于局部的回归算法,通过采用一种二分递归分割的技术将数据集切分成多份,每份子数据集中的标签值分布得比较集中(比如以数据集的方差作为数据分布比较集中的指标),然后采用该数据集的平均值作为其预测值。这样,CART回归树算法也可以较好地拟合非线性数据。

假如数据集的标签(目标值)的集合呈现如下非线性目标函数的值,CART回归树算法将数据集切分成很多份,即将如下函数切成一小段一小段的,对于每一小段的值是较为接近的,可以每一小段的平均值作为该小段的目标值。
拟合目标

二、CART回归树生成

1. CART回归树的划分

在CART分类树中,是利用Gini指数作为划分的指标,通过样本中的特征对样本进行划分,直到所有的叶节点中的所有样本均为一个类别为止。其中,Gini指数表示的是数据的混乱程度,对于回归树,样本标签是连续数据,当数据分布比较分散时,各个数据与平均值的差的平方和较大,方差就较大;当数据分布比较集中时,各个数据与平均值的差的平方和较小。方差越大,数据的波动越大;方差越小,数据的波动就越小。因此,对于连续的数据,可以使用样本与平均值的差的平方和作为划分回归树的指标。

假设,有m个训练样本,{(X(1),y(1)),(X(2),y(2)), …, (X(m),y(m))}, 则划分CART回归树的指标为:
m ∗ s 2 = ∑ i = 1 m ( y ( i ) − y ‾ ) 2 m*s^2 = \sum_{i=1}^m (y^{(i)}-\overline{y})^2 ms2=i=1m(y

这篇关于决策树(二):CART回归树与Python代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/556743

相关文章

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

Java实现状态模式的示例代码

《Java实现状态模式的示例代码》状态模式是一种行为型设计模式,允许对象根据其内部状态改变行为,本文主要介绍了Java实现状态模式的示例代码,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来... 目录一、简介1、定义2、状态模式的结构二、Java实现案例1、电灯开关状态案例2、番茄工作法状态案例

一文教你使用Python实现本地分页

《一文教你使用Python实现本地分页》这篇文章主要为大家详细介绍了Python如何实现本地分页的算法,主要针对二级数据结构,文中的示例代码简洁易懂,有需要的小伙伴可以了解下... 在项目开发的过程中,遇到分页的第一页就展示大量的数据,导致前端列表加载展示的速度慢,所以需要在本地加入分页处理,把所有数据先放

树莓派启动python的实现方法

《树莓派启动python的实现方法》本文主要介绍了树莓派启动python的实现方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、RASPBerry系统设置二、使用sandroidsh连接上开发板Raspberry Pi三、运

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

使用Python实现批量分割PDF文件

《使用Python实现批量分割PDF文件》这篇文章主要为大家详细介绍了如何使用Python进行批量分割PDF文件功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、架构设计二、代码实现三、批量分割PDF文件四、总结本文将介绍如何使用python进js行批量分割PDF文件的方法

Python实现多路视频多窗口播放功能

《Python实现多路视频多窗口播放功能》这篇文章主要为大家详细介绍了Python实现多路视频多窗口播放功能的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下... 目录一、python实现多路视频播放功能二、代码实现三、打包代码实现总结一、python实现多路视频播放功能服务端开