【Matlab】CNN卷积神经网络时序预测算法

news2025/1/20 3:36:46

 资源下载: https://download.csdn.net/download/vvoennvv/88681558

一,概述

        CNN(Convolutional Neural Network,卷积神经网络)是一种前馈神经网络,主要用于处理具有类似网格结构的数据,例如图像和音频。CNN 的主要特点是卷积层和池化层的交替使用来提取数据特征,以及使用全连接层对这些特征进行分类和识别。 CNN 的主要结构包括卷积层、池化层和全连接层。其中卷积层主要用于提取数据中的特征,它通过将一个小的卷积核在数据上滑动,将局部特征提取出来。池化层则用于降低数据的维度,减少特征数量,从而简化模型的复杂度。全连接层则用于将提取的特征映射到具体的分类或识别结果上。 CNN 在图像识别、语音识别、自然语言处理等领域中,都取得了非常好的效果。相比于传统的机器学习算法,CNN 不需要手动提取特征,而是通过学习数据中的特征,从而更好地解决了复杂模式识别问题。同时,CNN 的参数共享和权值共享机制,使得模型的训练速度更快,且对于数据的变换和噪声具有较强的鲁棒性。总之,CNN 是一种重要的深度学习算法,它在图像、语音、自然语言等领域中具有广泛的应用,是目前最先进的图像识别算法之一。

二,代码

代码中文注释非常清晰,按照示例数据修改格式,替换数据集即可运行,数据集为excel。

部分代码如下:

%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行

%%  导入数据(时间序列的单列数据)
result = xlsread('数据集.xlsx');

%%  数据分析
num_samples = length(result);  % 样本个数 
kim = 15;                      % 延时步长(kim个历史数据作为自变量)
zim =  1;                      % 跨zim个时间点进行预测

%%  划分数据集
for i = 1: num_samples - kim - zim + 1
    res(i, :) = [reshape(result(i: i + kim - 1), 1, kim), result(i + kim + zim - 1)];
end
%%  数据集分析
outdim = 1;                                  % 最后一列为输出
num_size = 0.7;                              % 训练集占数据集比例
num_train_s = round(num_size * num_samples); % 训练集样本个数
f_ = size(res, 2) - outdim;                  % 输入特征维度

%%  划分训练集和测试集
P_train = res(1: num_train_s, 1: f_)';
T_train = res(1: num_train_s, f_ + 1: end)';
M = size(P_train, 2);

P_test = res(num_train_s + 1: end, 1: f_)';
T_test = res(num_train_s + 1: end, f_ + 1: end)';
N = size(P_test, 2);

%%  数据归一化
[P_train, ps_input] = mapminmax(P_train, 0, 1);
P_test = mapminmax('apply', P_test, ps_input);

[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);

%%  数据平铺
% 将数据平铺成1维数据只是一种处理方式
% 也可以平铺成2维数据,以及3维数据,需要修改对应模型结构
% 但是应该始终和输入层数据结构保持一致
P_train =  double(reshape(P_train, f_, 1, 1, M));
P_test  =  double(reshape(P_test , f_, 1, 1, N));

% t_train = t_train';
% t_test  = t_test' ;
t_train =  double(t_train)';
t_test  =  double(t_test )';
%%  构造网络结构
layers = [
 imageInputLayer([f_, 1, 1])                 % 输入层 输入数据规模[15, 1, 1]
 
 convolution2dLayer([3, 1], 16, 'Stride', [1, 1], 'Padding', 'same')              
                                             % 卷积核大小 3 * 1 生成 16 张特征图
 batchNormalizationLayer                     % 批归一化层
 reluLayer                                   % Relu激活层

......

三,运行结果

资源下载: https://download.csdn.net/download/vvoennvv/88681558

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

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

相关文章

HTML---JavaScript基础

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 本章目标 掌握JavaScript的组成掌握JavaScript的基本语法会定义和使用函数会使用工具进行代码调试 一.JavaScript基础 概述 JavaScript是一种基于对象和事件驱动的脚本语言,用于在…

DotNet 命令行开发

DotNet 命令行开发 下载安装下载 SDK安装 SDK绿色版下载绿化脚本 常用命令创建 dotnet new运行 dotnet run发布应用 dotnet publish更多命令 VSCode 调试所需插件调试 CS 配置项目.csproj排除依赖关系 launch.jsontasks.json 参考资料 下载安装 下载 SDK 我们就下最新的好&am…

linux实用技巧:ubuntu18.04安装samba服务器实现局域网文件共享

Ubuntu安装配置Samba服务与Win10共享文件 Chapter1 Ubuntu18.04安装配置Samba服务与Win10共享文件一、什么是Samba二、安装Samba1、查看是否有安装samba2、安装samba 三、配置Samba服务1、创建共享目录(以samba_workspaces为例)2、为samba设置登录用户3、…

集群部署篇--Redis 主从模式

文章目录 前言Redis 主从部署:1.1 主从架构 介绍:1.2 主从架构 实现:1.2.1 redis 安装: 1.3 主从架构优缺点:1.4 故障转移: 总结 前言 显然在线上环境中 Redis 服务不能以单机的方式运行,必须有…

JAVA基础入门自学篇

JAVA基础入门 环境准备 win10/ideJava环境 零开始搭建项目 1. 创建空项目 依次点击:File—>New—>Project选择:Empty Project, 输入项目名,如图所示 2. 创建Module 依次点击:File—>New—>Module 选…

【零基础入门VUE】VueJS - 实例

✍面向读者:所有人 ✍所属专栏:零基础入门VUE专栏https://blog.csdn.net/arthas777/category_12537076.html 目录 句法 vue_instance.js 输出 例子 输出 实施例1 实施例2 例子 例子 要开始使用 VueJS,我们需要创建 Vue 实例&#xf…

前言-ERP管理平台各个模块角色登录账号及各模块逻辑说明

全国职业院校技能大赛-高职组”软件测试"赛项竞赛训练ERP管理平台角色登录账号如下: “ERP 管理平台”内置一定数量 Bug,该系统可支持基于 Web 端 的功能测试、自动化测试、性能测试、接口测试、白盒测试、单元测 试等。系统主要模块包括:采购入库、采购退货、库存分…

LVS负载均衡配置虚拟引起微服务注册混乱

线上小程序突然报错,查看网关日志,访问下游微服务A时大量报错: 1)检查微服务是否未注册。登录eureka页面,发现三个节点均正常注册 三个微服务节点地址分别为:13.9.1.91:8080,13.9.1.92:8080和1…

图像分割实战-系列教程2:Unet系列算法

图像分割实战-系列教程 总目录 语义分割与实例分割概述 Unet系列算法 1、Unet 整体结构:概述就是编码解码过程简单但是很实用,应用广起初是做医学方向,现在也是 语义分割与实例分割概述 Unet系列算法

EBU7140 Security and Authentication(一)常见加密算法

前言 主要根据 EBU7140 课程内容整理,比较偏向应试~ Block1:介绍课程,传统加密方式。 Block2:公钥加密的原理和应用。 Block3:一些特定安全协议技术(如防火墙 Kerberos身份验证协议等)。 B…

PLC龙门刨床横梁运动控制程序示例

一、龙门刨床横梁运动控制 二、按钮信号地址分配 三、对应的程序梯形图 1、首先按下上升按钮, 同时接通这两个触点(上升之前先对横梁进行放松) 2、当放得足够松的时候,放松通路断开,上升通路接通,横梁开始上…

20231229在Firefly的AIO-3399J开发板的Android11使用挖掘机的DTS配置单前后摄像头ov13850

20231229在Firefly的AIO-3399J开发板的Android11使用挖掘机的DTS配置单前后摄像头ov13850 2023/12/29 11:10 开发板:Firefly的AIO-3399J【RK3399】 SDK:rk3399-android-11-r20211216.tar.xz【Android11】 Android11.0.tar.bz2.aa【ToyBrick】 Android11.…

Java设计模式实战:从If-Else到策略+工厂方法的演变

引言 可能很多开发者,虽然理解了设计模式的概念,但在实际工作中应用却是另一回事。本篇文章旨在用一个具体的案例来展示如何将设计模式应用到工作的编程问题中。正所谓:“纸上得来终觉浅,绝知此事要躬行。”理论的学习固然重要&a…

Mybatis底层原理分析以及源码阅读

费话不多少先上图,我只喜欢画图分析,看图片: 有两个问题: 问题1: 我们一直在写Mapper/DAO只写了接口,没有写具体的实现吧? 【是的】 问题2: 没有写实现类就没办法实例化执行后续的操…

Windows系统清理优化方法总结

一、禁用不必要的系统服务 1、家庭组:家庭组是Win10磁盘,CPU需要高服务,多数用户都没有使用,因此建议关闭,不会造成其他负面影响。 快捷键 winr 调出服务输入框键入services.msc点击确定 找到家庭组相关的两个服务双…

【已解决】 ubuntu apt-get update连不上dl.google.com

在终端使用apt-get update时,连接dl.google.com超时,一直卡在0%,原因是当前ip无法ping到google(墙)。 解决方法: dl.google.com国内可用IP 选一个,然后按以下命令操作: cd ~ vim …

css实现一个斑马条纹动画,实现一个理发店门口的小转转,进度条动画同理!

css实现一个斑马条纹动画,实现一个理发店门口的小转转 前置基础知识 css背景background的重复渐变属性repeating-linear-gradient() 该属性类似于linear-gradient(),但他会在整个方向上重复渐变以覆盖整个容器 一、先写一个普通渐变例子linear-gradient() &…

【STM32】STM32学习笔记-TIM输出比较(15)

00. 目录 文章目录 00. 目录01. 输出比较简介02. PWM简介03. 输出比较通道(高级)04. 输出比较通道(通用)05. 输出比较模式06. PWM基本结构07. PWM参数计算08. 舵机简介09. 舵机硬件电路10. 直流电机及驱动简介11. 直流电机硬件电路12. 附录 01. 输出比较简介 OC(Ou…

如何解决“电脑缺失msvcp110.dll”错误,msvcp110.dll文件解决方法

“msvcr110.dll丢失”。那么,msvcr110.dlll丢失到底是什么意思呢?它对我们的电脑有什么影响?本文将详细介绍msvcr110.dll的作用以及msvcr110.dll丢失对电脑的影响,并提供5个解决方案来解决这个问题。 一、msvcr110.dll的作用 ms…

成为一名FPGA工程师:面试题与经验分享

在现代科技领域,随着数字电子技术的迅猛发展,FPGA(可编程逻辑器件)工程师成为了备受瞩目的职业之一。FPGA工程师不仅需要掌握硬件设计的基本原理,还需要具备良好的编程能力和解决问题的实践经验。面对如此竞争激烈的行…