使用投票回归器VotingRegressor对糖尿病数据集进行回归预测

news2024/11/28 19:29:22

目录

  • 1. 作者介绍
  • 2. 投票回归器VotingRegressor简介
    • 2.1 VotingRegressor介绍
    • 2.2 VotingRegressor算法遵循以下关键原则:
  • 3. 使用投票回归器VotingRegressor对糖尿病数据集进行回归预测实验过程
    • 3.1 代码流程介绍
    • 3.2 完整代码
    • 3.3 实验结果

1. 作者介绍

余成伟,男,西安工程大学电子信息学院,2022级研究生
研究方向:机器视觉与人工智能
电子邮件:2998527638@qq.com
张思怡,女,西安工程大学电子信息学院,2022级研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:981664791@qq.com

2. 投票回归器VotingRegressor简介

2.1 VotingRegressor介绍

VotingRegressor是一种用于回归任务的集合学习方法,它结合了多个单独回归模型的预测结果。它源于集合学习的概念,其目的是通过结合不同模型的优势来提高预测性能。VotingRegressor算法允许将不同的回归模型,如线性回归、决策树、随机森林或支持向量回归,组合成一个集合模型。通过利用各个模型的多样性和它们的集体预测能力,VotingRegressor旨在提供比单独使用任何单一模型更准确和稳健的预测结果。值得注意的是,VotingRegressor算法的具体实现和细节可能会因使用的软件库或框架而不同。

2.2 VotingRegressor算法遵循以下关键原则:

①.在VotingRegressor中,集合中的每个单独的回归模型都会对给定的输入进行预测。最终的预测结果是通过汇总各个预测结果而得到的。汇总可以通过取预测的平均数(平均值)或加权平均数来进行。
②. VotingRegressor通常使用等额或加权投票方案来确定每个单独模型的预测的重要性。在等额投票的情况下,每个模型的预测具有相同的权重。在加权投票中,每个模型的预测根据其估计的性能或可靠性被赋予特定的权重。
③.由于VotingRegressor是为回归任务设计的,单个预测的聚合考虑了目标变量的连续性质。最终的预测是一个连续值,代表了对目标变量的汇总估计。

3. 使用投票回归器VotingRegressor对糖尿病数据集进行回归预测实验过程

3.1 代码流程介绍

①.导入所需的库,包括用于数据处理的pandas,用于回归模型的scikit-learn模块,以及用于可视化的matplotlib。
②.使用sklearn.datasets中的load_diabetes()函数加载糖尿病数据集。将特征分配给X,将目标变量分配给y。
③. 使用sklearn.model_selection中的train_test_split()函数将数据集分成训练和测试集。指定测试大小为0.2(数据的20%),并设置一个随机状态以保证可重复性。
④. 创建三个单独的回归模型:线性回归、随机森林回归和SVR(空间自回归模型)。
⑤. 创建一个VotingRegressor实例,并传递一个包含名称和相应回归模型实例的图元列表。
⑥. 通过调用voting_model对象的fit()方法,使用训练数据训练集合模型。
⑦.使用voting_model的predict()方法对测试集进行预测。
⑧. 使用sklearn.metrics中的mean_squared_error()和r2_score()函数,通过计算平均误差(MSE)和R-squared分数来评估模型。
⑨. 通过使用plt.scatter()创建一个散点图,将预测值与真实值进行可视化。使用plt.plot()为完美预测添加一条参考线。给坐标轴贴上标签,并为图提供一个标题。使用plt.show()显示图。
⑩. 打印计算出的MSE和R-squared分数。
这段代码展示了VotingRegressor如何结合三种不同的回归模型的预测,并为糖尿病数据集提供一个集合预测。散点图可视化了真实值和预测值之间的关系。

3.2 完整代码

import pandas as pd
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import RandomForestRegressor
from sklearn.svm import SVR
from sklearn.ensemble import VotingRegressor
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib.pyplot as plt

# Load the Diabetes dataset
diabetes = load_diabetes()
X = diabetes.data
y = diabetes.target

# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Create individual regression models
model1 = LinearRegression()
model2 = RandomForestRegressor()
model3 = SVR()

# Create the VotingRegressor with the individual models
voting_model = VotingRegressor([('lr', model1), ('rf', model2), ('svm', model3)])

# Train the ensemble model
voting_model.fit(X_train, y_train)

# Make predictions on the test set
y_pred = voting_model.predict(X_test)

# Evaluate the model
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

# Plot the predicted values vs. true values
plt.scatter(y_test, y_pred)
plt.plot([min(y_test), max(y_test)], [min(y_test), max(y_test)], 'r--')
plt.xlabel('True Values')
plt.ylabel('Predicted Values')
plt.title('True Values vs. Predicted Values')
plt.show()

print("Mean Squared Error:", mse)
print("R-squared Score:", r2)


3.3 实验结果

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【深度学习】YOLOv8训练过程,YOLOv8实战教程,目标检测任务SOTA,关键点回归

文章目录 可用资源资源安装模型训练(检测)模型pridict模型导出 可用资源 https://github.com/ultralytics/ultralytics 官方教程:https://docs.ultralytics.com/modes/train/ 资源安装 更建议下载代码后使用 下面指令安装,这样…

Hug pylons, not trees 拥抱电网,而非树木 | 经济学人20230408版双语精翻

《经济学人》4月8日周报封面即社论区(Leaders)精选文章:《拥抱电网,而非树木》(Hug pylons, not trees)。 Hug pylons, not trees 拥抱电网,而非树木 The case for an environmentalism that bu…

100天精通Golang(基础入门篇)——第9天:Go语言程序的循环语句

🌷 博主 libin9iOak带您 Go to Golang Language.✨ 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《I…

UWB定位的两种解法

UWB(Ultra-Wideband)技术是一种短脉冲无线电技术(短脉冲意味着信号的带宽很大,因此称为超宽带),其应用非常广泛,其中之一就是室内定位,通过计算信号传播的时间差,可以得到标签和基站之间的距离,如果有足够多的基站&…

Unity核心1——图片导入与图片设置

一、图片导入概述 ​ Unity 支持的图片格式有很多 BMP:是 Windows 操作系统的标准图像文件格式,特点是几乎不进行压缩,占磁盘空间大 TIF:基本不损失图片信息的图片格式,缺点是体积大 JPG:一般指 JPEG 格…

【Elasticsearch】 之 Translog/FST/FOR/RBM算法

目录 Translog FST/FOR/RBM算法解析 FST FOR(Frame of Reference): RBM(Roaring Bitmaps)-(for filter cache) Translog es是近实时的存储搜索引。近实时,并不能保证被立刻看到。数据被看到的时候数据已经作为一…

工业级以太网RJ45温湿度监控系统解决方案之关键POE供电温湿度传感器

目 录 一、关键词…………………………………………………………………………3 二、 产品概述………………………………………………………………………3 三、 应用范围………………………………………………………………………3 四、 产品特点………………………………

Linux0.11内核源码解析-file_dev.c

目录 功能描述 int file_read(struct m_inode * inode, struct file * filp, char * buf, int count) int file_write(struct m_inode * inode, struct file * filp, char * buf, int count) 功能描述 该文件主要是由两个函数file_read()和file_write()组成,提供…

Nginx网站服务——服务基础

文章目录 一.Nginx服务基础1.关于Nginx的特点2.简述Nginx和Apache的差异3.Nginx 相对于 Apache 的优点4.Apache 相对于 Nginx 的优点5.阻塞与非阻塞6.同步与异步7.nginx的应用场景 二.编译安装nginx服务1.在线安装nginx1.1 yum部署Nginx1.2 扩展源安装完后直接安装Nginx 2.ngin…

MySQL数据库---存储引擎(MyISAM与InnoDB)

目录 前言一、存储引擎概念介绍二、MyISAM三、InnoDB四、配置合适的存储引擎总结 前言 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧…

Vue中如何进行图像识别与人脸对比

Vue中如何进行图像识别与人脸对比 随着人工智能的发展,图像识别和人脸识别技术已经被广泛应用于各种应用程序中。Vue作为一种流行的前端框架,提供了许多实用工具和库,可以帮助我们在应用程序中进行图像识别和人脸识别。在本文中,…

docker换源(docker镜像源)pull超时(pull镜像超时)/etc/docker/daemon.json

文章目录 pull了n次都超时&#xff0c;也是醉了更换镜像源步骤1. 打开终端并以管理员身份登录到Docker主机。2. 编辑Docker配置文件daemon.json。该文件用于配置Docker守护进程的参数。3. 在daemon.json文件中添加以下内容&#xff0c;将<镜像源地址>替换为您选择的镜像源…

基于matlab仿真具有不同传感器模式的锥形阵列(附源码)

一、前言 此示例说明如何在不同的阵列配置上应用锥形和模型细化。它还演示了如何创建具有不同元素模式的数组。 二、ULA 逐渐变细 本节介绍如何在均匀线性阵列 &#xff08;ULA&#xff09; 的元素上应用泰勒窗口以降低旁瓣电平。 比较锥形阵列和非锥形阵列的响应。请注意锥形U…

外部局域网直接访问WSL2

1. 开启hyper-v 1、首先&#xff0c;进入控制面板—程序—启用或关闭windows功能&#xff0c;勾选hyper-v&#xff0c;确认后重启电脑。2、打开 Windows PowerShell&#xff0c;输入 systeminfo 命令 能够看到出现了很多处理器的信息&#xff0c;最末尾有个 Hyper-V 要求&…

Redis 2023面试5题(一)

一、Redis是单线程还是多线程 在面试中&#xff0c;当被问到Redis是单线程还是多线程这个问题时&#xff0c;可以按照以下思路进行回答&#xff1a; 首先&#xff0c;Redis的核心业务部分是单线程的&#xff0c;即命令处理部分是单线程的。然而&#xff0c;Redis也支持多路复…

Java---第四章(数组基础,冒泡排序,二分查找,多维数组)

Java---第四章 一 数组基本知识数组操作 二 数组实操数组排序二分查找二维数组 一 数组 基本知识 概念&#xff1a; 数组是编程语言中的一种常见的数据结构&#xff0c;能够存储一组相同类型的数据 作用&#xff1a; 存储一组相同类型的数据&#xff0c;方便进行数理统计&am…

springboot3生命周期监听的使用和源码解析

定义SpringApplicationRunListener来监听springApplication的启动 1.通过实现springApplicationRunListener来实现监听。 2.在 META-INF/spring.factories 中配置 org.springframework.boot.SpringApplicationRunListener自己的Listener。 在默认的springboot配置中就有给我…

视觉SLAM十四讲——ch12实践(建图)

视觉SLAM十四讲——ch12的实践操作及避坑 0.实践前小知识介绍1. 实践操作前的准备工作2. 实践过程2.1 单目稠密重建2.2 RGB-D稠密建图2.3 点云地图2.4 从点云重建网格2.5 八叉树地图 3. 遇到的问题及解决办法3.1 cmake ..时&#xff0c;出现opencv版本问题3.2 make -j8时&#…

使用腾讯云服务器从零搭建个人网站

前期准备工作 1.服务器重装系统 选择ubuntu18的系统镜像 2.开放端口 需要开放80&#xff0c;27017&#xff0c;3000&#xff0c;22端口 80端口用于配置nginx服务27017端口用于连接mongondb数据库3000端口是启动项目的端口22端口用于ssh远程连接服务器&#xff0c;一般默认会…

SpringBoot - @Transactional注解详解

简介 Spring中的Transactional注解&#xff0c;基于动态代理的机制&#xff0c;提供了一种透明的事务管理机制&#xff0c;方便快捷的解决在开发中碰到的问题&#xff0c;Transactional 的事务开启 &#xff0c;或者是基于接口的或者是基于类的代理被创建。Spring为了更好的支…