(Matlab)基于CNN-Bi_LSTM的多维回归预测(卷积神经网络-双向长短期记忆网络)

news/2024/2/29 3:06:19

目录

一、程序及算法内容介绍:

基本内容:

亮点与优势:

二、实际运行效果:

三、部分代码展示:

四、完整程序+数据分享:


一、程序及算法内容介绍:

基本内容:

  • 本代码基于Matlab平台编译,将卷积神经网络(CNN)与双向长短期记忆神经网络(Bi-LSTM)结合,进行数据回归预测

  • 输入训练的数据包含18个特征,1个响应值,即通过18个输入值预测1个输出值(多变量、多输入回归预测

  • 归一化训练数据,提升网络泛化性

  • 通过CNN神经网络提取数据的特征,然后输入Bi-LSTM进行预测回归,提升整体网络的性能

  • 训练CNN-Bi_LSTM网络,可自行指定各种参数,修改方便

  • 迭代计算过程中,自动显示优化进度条,实时查看程序运行进展情况

  • 自动输出多种多样的的误差评价指标,自动输出大量实验效果图片

亮点与优势:

  • 注释详细,几乎每一关键行都有注释说明,适合小白起步学习

  • 直接运行Main函数即可看到所有结果,使用便捷

  • 编程习惯良好,程序主体标准化,逻辑清晰,方便阅读代码

  • 所有数据均采用Excel格式输入,替换数据方便,适合懒人选手

  • 出图详细、丰富、美观,可直观查看运行效果

  • 附带详细的说明文档(下图),其内容包括:算法原理+使用方法说明

二、实际运行效果:

三、部分代码展示:


clc;
clear;
warning off;
%% 导入数据
Data = table2array(readtable("数据集.xlsx"));
% 本例数据集中包含:
% 1. 总共1800个样本(每一行表示一个样本)
% 2. 每个样本18个特征值(即前18列每一列表示样本的一个特征,即输入的变量)
% 3. 每个样本1个响应值(第19列为表示样本的响应值,即被预测的变量)%% 划分训练集和测试集
Temp = randperm(size(Data,1)); % 打乱数据的顺序,提升模型的泛化性。
InPut_num = 1:1:18; % 输入特征个数,数据表格中前18列为输入值,因此设置为1:1:18,若前5个为输入则设置为1:1:5
OutPut_num = 19; % 输出响应个数,本例仅一个响应值,为数据表格中第19个,若多个响应值参照上行数据格式设置为x:1:y% 选取前1700个样本作为训练集,后100个样本作为测试集,即(1:1700),和(1701:end)
Train_InPut = Data(Temp(1:1700),InPut_num); % 训练输入
Train_OutPut = Data(Temp(1:1700),OutPut_num); % 训练输出
Test_InPut = Data(Temp(1701:end),InPut_num); % 测试输入
Test_OutPut = Data(Temp(1701:end),OutPut_num); % 测试输出
clear Temp;
%% 数据归一化
% 将输入特征数据归一化到0-1之间
[~, Ps.Input] = mapminmax([Train_InPut;Test_InPut]',0,1); 
Train_InPut = mapminmax('apply',Train_InPut',Ps.Input);
Test_InPut = mapminmax('apply',Test_InPut',Ps.Input);
% 将输出响应数据归一化到0-1之间
[~, Ps.Output] = mapminmax([Train_OutPut;Test_OutPut]',0,1);
Train_OutPut = mapminmax('apply',Train_OutPut',Ps.Output);
Test_OutPut = mapminmax('apply',Test_OutPut',Ps.Output);
Temp_TrI = cell(size(Train_InPut,2),1);
Temp_TrO = cell(size(Train_OutPut,2),1);
Temp_TeI = cell(size(Test_InPut,2),1);
Temp_TeO = cell(size(Test_OutPut,2),1);% 转为cell格式
for i = 1:size(Train_InPut,2)Temp_TrI{i} = Train_InPut(:,i);Temp_TrO{i} = Train_OutPut(:,i);
end
Train_InPut = Temp_TrI;
Train_OutPut = Temp_TrO;for i = 1:size(Test_InPut,2)Temp_TeI{i} = Test_InPut(:,i);Temp_TeO{i} = Test_OutPut(:,i);
end
Test_InPut = Temp_TeI;
Test_OutPut = Temp_TeO;clear Temp_TrI Temp_TrO Temp_TeI Temp_TeO;

四、完整程序+数据分享:


http://www.ppmy.cn/news/1323294.html

相关文章

Go语言使用gosseract 库来进行图像文字识别,识别出来的中文是乱码的?如何解决?

如果您在使用 gosseract 库进行图像文字识别时,得到的中文文字是乱码,可能是因为默认情况下 gosseract 以及 Tesseract 引擎并不支持中文字符的识别。要解决这个问题,您需要进行一些配置和设置。 以下是解决方案的步骤: 1 安装 …

月薪2W的软件测试工程师,到底是做什么的?

在生活中,我们常常会遇到以下几种窘迫时刻: 准备骑共享单车出行,却发现扫码开锁半天,车子都没有反应;手机导航打车,却发现地图定位偏差很大,司机总是跑错地方;买个水,却…

行为型设计模式—职责链模式

职责链模式:从名字可以拆分为 职责 和 链。即能为请求创建一条由多个处理器组成的链路,每个处理器各自负责自己的职责,相互之间没有耦合,完成自己任务后请求对象即传递到链路的下一个处理器进行处理。 如果在写好的执行函数里加上…

前端开发工程师面试总结

最新 1.webpack分包具体怎么配置的?分包有什么好处?https://www.webpackjs.com/plugins/split-chunks-plugin/ SplitChunksPlugin插件,设置optimization.splitChunks里面的各种属性,比如chunks: all或者async,minSize等&#xff…

C#/WPF 设置和启动Windows屏保程序

前言 我们平时电脑启动的屏保程序其本质也是应用程序,只是后缀名为.scr。所以我们只需要把应用程序后缀改为.scr,然后右键选择安装即可启动我们自己的屏保程序。 屏保注册表参数 设置电脑屏保参数,在个性化设置>锁屏界面>屏幕保护程序设…

ssl解码

https://www.kamailio.org/dokuwiki/doku.php/troubleshooting:tls 这篇文章说ssldump可以解码 但是实操起来往往不行 再请看这篇文章: https://osqa-ask.wireshark.org/questions/7886/ssl-decrypting-problem/ 还好我够机智, 改了下/etc/kamailio…

开源云真机平台-Sonic平台-python自定义脚本-config.json方式实现全局配置参数的读写操作

【主要功能】 config.json方式实现全局配置参数的读写操作 使用python实现以下功能: 1、使用将接口获取的变量值,写入到当前目录下的config文件中,如delayTime10; 2、读取当前目录下的config文件中,特定变量的值&…

10 STM32标准库函数 之 DMA控制器(DMA)所有函数的介绍及使用

10 STM32标准库函数 之 DMA控制器(DMA)所有函数的介绍及使用 1 DMA库函数预览1.1 函数 DMA_DeInit2.2 函数DMA_Init1.3 函数 DMA_StructInit1.4 函数DMA_Cmd1.5 函数DMA_ITConfig1.6 函 数 DMA_GetCurrDataCounte1.7 函数DMA_GetFlagStatus1.8 7.2.8函数…

数据结构(三)堆和哈希表

目录 哈希表和堆什么是哈希表 ?什么是堆 ?什么是图 ?案例一:使用python实现最小堆案例二 : 如何用Python通过哈希表的方式完成商品库存管理闯关题 (包含案例三:python实现哈希表) 本…

【JMeter】JMeter连OceanBase数据库

1、下载OB(OceanBase简称,下同),下载地址:https://www.oceanbase.com/softwarecenter-enterprise 2、将下载下来的jar包放到jmeter安装目录的 lib 目录下,或者打开JMeter客户端,在测试计划中引入…

使用python连接elasticsearch

有一个困惑了好久的问题,那就是从python里面连接elasticsearch总是报错。大致长这样 一开始我是看网上把es的安全功能关闭,也就是下面的内容,这个要进入到es的docker中去改config/elasticsearch.yml配置文件,但是这样改了以后kib…

STM32F103标准外设库——GPIO 输入、输出 (五)

个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:V…

Jenkins-Maven Git

整合Maven 安装GIT #更新yum sudo yum update #安装git yum install git 安装Maven插件,在插件管理中心: 配置仓库 配置密码认证 我们可以在这个目录下看到Jenkins 帮我们拉取了代码 /env/liyong/data/docker/jenkins_mount/workspace/maven-job 配置maven打包…

SSM(Spring,SpringMVC,MyBatis)整合项目

文章目录 SSM(Spring,SpringMVC,MyBatis)整合项目1.创建表2.创建工程3.pom.xml4.log4j.properties5.db.properties6.applicationContext-dao.xml7.applicationContext-tx.xml8.applicationContext-service.xml9.springmvc.xml10.web.xml11.pojo12.mapper13.service14.controlle…

chrome 307状态码

问题:不知道什么原因导致http请求chrome始终307跳转到https,这个307的跳转非常恶心的地方是客户端缓存行为,并且非普通的f12下面清除缓存可以去掉 解决办法:使用chrome的清除浏览数据,通过这个方式清除,才能解决。 问…

HCS私有云简介

1、HCS简介和发展史 华为云产品:私有云和公有云,现在的私有云已经和公有云越来越像了FusionSphere是华为的一个品牌2016年,在5.0版本的时候,华为Openstack叫FusionSphere Openstack 5.0,底层用的是suse操作系统&#…

前端常见面试题之ajax、http

文章目录 一、手写ajax请求1. get2. post3. xhr.readyState4. xhr.status5. xhr.open 二、跨域三、cookie、localStorage和sessionStorage四、http1. http常见的状态码有哪些2. http常见的header有哪些3. 什么是RestfulAPI4. 描述一下http的缓存机制5. https 一、手写ajax请求 …

Jmeter的文件参数化:CSV数据文件设置和_CSVRead函数

一、CSV数据文件设置 1、简介 CSV数据文件配置(CSV Data Set Config)可以将CSV文件中数据读入自定义变量中 Jmeter中CSV数据文件配置的界面如下图所示: 其中: (1)文件编码 文件的编码格式,与所…

【GCC】6 接收端实现:周期构造RTCP反馈包

基于m98代码。GCC涉及的代码,可能位于:webrtc/modules/remote_bitrate_estimator webrtc/modules/congestion_controller webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc webrtc 之 RemoteEstimatorProxy 对 remote_bitrate_estimator 的 RemoteEstimato…

开发实践7_文件上传

以下学习 朔宁夫 开发课(Python)。 文件上传&表单类 一 Django文件上传 表单上传。 前端:表单设置 enctype "multipart/form-data" 后端:获取上传文件对象 upload_dile request.FILES.get("文件域名…
最新文章