24/8/15算法笔记 复习_决策回归树

news2025/1/11 18:49:21
from sklearn.tree import DecisionTreeRegressor
from sklearn import tree
import numpy as np
import matplotlib.pyplot as plt

#创建数据
X_train = np.linspace(0,2*np.pi,40).reshape(-1,1)#训练数据就是符合要求的二维数据
#二维:[[样本一].[样本二],[样本三]....]多个样本,每个样本,包含多个属性
 
#将 X_train 的每个特征值通过正弦(np.sin)和余弦(np.cos)函数进行变换,并将结果沿着指定的轴(在这个例子中是轴1,即列方向)进行拼接。
y_train = np.concatenate([np.sin(X_train),np.cos(X_train)],axis = 1)
 
plt.figure(figsize=(4,4))
plt.scatter(y_train[:,0],y_train[:,1])

X_test = np.linspace(0,2*np.pi,256).reshape(-1,1)

#首先使用线性回归
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train,y_train)#建模
 
y_pred = model.predict(X_test)#预测
 
#如果效果好,绘制测试数据应该是圆
plt.scatter(y_pred[:,0],y_pred[:,1])

#决策树
#决策树深度为3
model =DecisionTreeRegressor(max_depth=3)
model.fit(X_train,y_train)#建模
 
y_pred = model.predict(X_test)#预测
display(y_pred.shape)
#如果效果好,绘制测试数据应该是圆
plt.scatter(y_pred[:,0],y_pred[:,1])
_ = plt.axis('equal')#横纵坐标相等

import graphviz


dot_data = tree.export_graphviz(model,filled=True,rounded = True)
 
graph = graphviz.Source(dot_data) #使用 graphviz 的 Source 对象来创建图形
graph

#决策树深度为4
model =DecisionTreeRegressor(max_depth=4)
model.fit(X_train,y_train)#建模
 
y_pred = model.predict(X_test)#预测
display(y_pred.shape)
#如果效果好,绘制测试数据应该是圆
plt.scatter(y_pred[:,0],y_pred[:,1])
_ = plt.axis('equal')#横纵坐标相等

#不进行剪枝,默认展开
model =DecisionTreeRegressor(max_depth=None)
model.fit(X_train,y_train)#建模
 
y_pred = model.predict(X_test)#预测
display(y_pred.shape)
#如果效果好,绘制测试数据应该是圆
plt.scatter(y_pred[:,0],y_pred[:,1])
_ = plt.axis('equal')#横纵坐标相等

dot_data = tree.export_graphviz(model,filled=True,rounded = True)
 
graph = graphviz.Source(dot_data)
graph

决策回归树(Decision Regression Tree)是一种用于解决回归问题的机器学习算法。它特别适用于以下类型的问题:

  1. 连续值预测:决策回归树预测的是一个连续的数值,如房价、温度、销售额等。

  2. 非线性关系:它可以捕捉数据中复杂的非线性关系,而不需要事先假设数据遵循特定的数学模型。

  3. 特征选择:通过构建树的过程中的特征分裂,决策回归树可以识别出对预测目标变量最重要的特征。

  4. 数据探索:决策树提供了一种直观的数据探索方式,帮助理解不同特征如何影响预测结果。

  5. 模型解释:决策树模型易于解释和可视化,可以展示特征与目标变量之间的关系。

  6. 多变量问题:它可以处理具有多个特征(自变量)的数据集。

  7. 多输出问题:虽然决策回归树通常用于单输出问题,但也可以扩展到多输出回归问题。

  8. 数据集大小:对于小到中等大小的数据集,决策回归树可以工作得很好,尤其是在数据量不足以训练复杂的模型时。

  9. 数据类型:决策树可以处理数值型和类别型数据,只要适当地预处理和编码。

  10. 先验知识:如果对数据集中的变量关系有先验知识,可以通过决策树的构建过程来验证这些知识。

  11. 基线模型:在许多情况下,决策树作为基线模型,提供了一个简单的性能比较标准。

  12. 集成学习:虽然决策树本身可能容易过拟合,但它们可以作为集成方法(如随机森林或梯度提升树)的一部分,以提高预测性能和鲁棒性。

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

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

相关文章

Elasticsearch、Easy-es 快速入门 SearchAfterPage分页 若依前后端分离 Ruoyi-Vue SpringBoot

一、环境安装 Elasticsearch ik分词器 1.1 下载解压Elasticsearch-7.x版本,越高越好,低版本有Log4j漏洞,Easy-es目前支持7.x 1.2 IK中文分词器 将对应Elasticsearch版本IK放进文件夹,Elasticsearch-7.6.1,ik对应版…

GPT-SoVITS

文章目录 model archS1 ModelS2 model model arch S1 model: AR model–ssl tokensS2 model: VITS,ssl 已经是mel 长度线性相关,MRTE(ssl_codes_embs, text, global_mel_emb)模块,将文本加强相关,学到一个参考结果 S1 Model cla…

Lora 全文翻译

作者: 地点:hby 来源:https://arxiv.org/pdf/2106.09685 工具:文心 LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS 摘要 自然语言处理的一个重要范式包括在通用领域数据上进行大规模预训练,并适应特定任务或…

Qt自定义控件:关于大佬“飞扬青云“的自定义UI控件的使用教程(MinGw,MSVC)

前言 最近在搞自定义控件,无意间发现大佬飞扬青云的开源项目,Qt/C编写超精美自定义控件 这里先贴出大佬项目地址和博客 码云:wwlzq5/qucsdk (gitee.com)(旧版下载地址Qt4.7到Qt5.14) github:https://git…

攻克面试:高频面试题与常见算法深度剖析

干货分享,感谢您的阅读! (暂存篇---后续会删除,完整版和持续更新见高频面试题基本总结回顾(含笔试高频算法整理)) 备注:引用请标注出处,同时存在的问题请在相关博客留言…

第1章 大模型的概念、发展历程和应用领域

大模型:塑造未来的智能力量 目录 引言:大模型的定义与影响大模型的发展历程 早期探索:深度学习的起步中期发展:算法的革新与计算能力的提升当代突破:大模型的崛起 大模型的影响与未来展望 引言:大模型的定…

【设计模式】六大原则之依赖倒置原则(Dependency Inversion Principle,‌DIP)

设计模式是对相关问题提出的解决方案。 一般而言,一个模式有四个基本要素: 模式名称 (pattern name) 一个助记名,它用一两个词语来描述模式问题、解决方案和效果。问题(problem)描述了应该在何…

Unity中对Spine动画播放、暂停、事件处理管理类

Unity中对Spine动画播放、暂停、事件处理管理类 介绍Spine的事件处理动画师制作沟通Unity前端使用事件 Unity中动画播放Unity中动画暂定和继续Unity中停止动画Unity中动画转向Unity中获取骨骼和设置插槽附件完整管理类分享总结 介绍 最近在做设计spine动画的抖音小程序&#x…

RecyclerView的缓存机制(面试常客)

在构建滚动列表时,我们常首选RecyclerView,出于它优秀的缓存复用机制。 核心机制 RecyclerView的缓存机制又称回收复用机制,RecyclerView构建列表视图分为以下三步: 第一步的创建ViewHolder是RecyclerView构建视图时最耗时的操作…

鸿蒙(API 12 Beta3版)【使用通话设备切换组件】使用投播组件

基本概念 系统不再提供音频输出设备切换的API,如果需要应用内切换音频输出设备,请实现AVCastPicker组件,相关参数可参考[ohos.multimedia.avCastPicker]和 [ohos.multimedia.avCastPickerParam]。 本文将主要介绍AVCastPicker组件接入&…

【论文笔记】:PVswin-YOLOv8s:基于无人机的行人和车辆检测,使用改进的YOLOv8在智能城市中进行交通管理

摘要 在智慧城市中,有效的交通拥堵管理取决于熟练的行人和车辆检测。无人机 (UAV) 提供了一种具有移动性、成本效益和宽视野的解决方案,然而,优化识别模型对于克服小型和遮挡物体带来的挑战至关重要。为了解决这些问题…

推出 SAM 2:适用于视频和图像的下一代 Meta Segment Anything 模型

继图像元分割模型(SAM) 取得成功之后,我们发布了SAM 2,这是一个用于在图像和视频中实时提示对象分割的统一模型,可实现最先进的性能。 为了秉承我们的开放科学方针,我们通过宽松的 Apache 2.0 许可证共享代码和模型权重。 我们还…

嵌入式linux系统镜像制作day2

点击上方"蓝字"关注我们 01、前言 嵌入式linux系统镜像制作day1这一节先了解,后面实操 02、Yocto项目快速启动 Yocto项目通过OpenEmbedded构建系统为各种平台(包括x86-64和仿真平台)提供了一个针对ARM、MIPS、PowerPC和x86架构的开源开发环境。您可以使用Yocto项…

WebDeveloper:1靶机渗透测试

一、靶机下载地址 https://www.vulnhub.com/entry/web-developer-1,288/ 二、信息收集 1、主机发现 # 使用命令 nmap 192.168.145.0/24 -sn | grep -B 2 "00:0C:29:54:22:E9" 2、端口扫描 # 使用命令 nmap 192.168.145.216 -p- -sV 3、指纹识别 # 使用命令 wha…

【SpringCloud】什么是MQ

RabbitMQ 1.什么是MQ 1.1 同步和异步通信 微服务间通讯有同步和异步两种方式: 同步通讯:就例如打电话一样,需要实时响应异步通讯:就例如发邮件一样,不需要马上回复 1.1.1同步通讯 Feign的远程调用就属于同步通讯…

【数据分析】描述性统计分析 - 直方图

一、什么是直方图 由一批长方形构成,通过长方形的面积或高度来代表对应组在数据中所占的比例。用长方形的面积代表对应组的频数与组距的比时,则称为频率分布直方图;当用长方形的高代表对应组的频数时,则称为频数分布直方图。但严格统计意义上…

WT32-ETH01开发板模块,启明云端物联网方案,乐鑫ESP32多样化开发应用

在物联网(IoT)的浪潮中,无线Wi-Fi模块作为连接传统硬件与现代智能网络的桥梁,正逐渐成为智能家居和设备通信不可或缺的一部分。Wi-Fi模块也被称为串口Wi-Fi模块,是一种嵌入式模块,它能够将串口或TTL电平信号转换为符合Wi-Fi无线网…

普元EOS-多数据源时业务数据库初始化

1 问题 EOS开发应用的时候,可以采用多数据源。 项目启动的是时候报错如下: 2024-08-14 16:03:56.105 ERROR [EOS-DEMO-SYS,EOSLOWCODE,default,cuipengyu:EOSLOWCODE:28015,,,,] 28960 --- [Timer-0] c.p.g.a.a.m.RdcloudStatisticsThread : User…

66_1JSON【浏览器中处理JSON、Java中处理JSON(FastJSON、Jackson)】、Java中的bean

JSON 概念 JSON:JavaScript Object Notation是一种表示对象的方式 基于JavaScript语言的轻量级的数据交换格式;(即:用来传输数据的一种格式) 现在传输数据的方式更多是采用json的格式,渐渐代替了XML JSON的数据表示 JSON采用名值…

封装一个细粒度的限流器

文章目录 原因限流对象限流后的做法怎么确定限流阈值观测业务性能数据压测借鉴链路上的其他服务手动计算 四种静态限流算法令牌桶漏桶固定窗口与滑动窗口 手写限流算法令牌桶漏桶固定窗口滑动窗口 分布式限流的具体实现 原因 尽管云原生网关里有统一入口的限流(根据…