时序预测 | MATLAB实现基于CNN卷积神经网络的时间序列预测-递归预测未来(多指标评价)

news/2024/6/29 12:18:03 标签: CNN, 卷积神经网络, 时间序列预测

CNN_0">时序预测 | MATLAB实现基于CNN卷积神经网络时间序列预测-递归预测未来(多指标评价)

目录

预测结果

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

在这里插入图片描述

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

基本介绍

1.Matlab实现CNN卷积神经网络时间序列预测未来;
2.运行环境Matlab2018及以上,data为数据集,单变量时间序列预测
3.递归预测未来数据,可以控制预测未来大小的数目,适合循环性、周期性数据预测;
4.命令窗口输出R2、MAE、MAPE、MBE、MSE等评价指标。
运行环境Matlab2018及以上。
程序乱码是由于Matlab版本不一致造成的,处理方式如下:
先重新下载程序,随后,如main.m文件出现乱码,则在(桌面的)文件夹中找到目标文件main.m。右击选择打开方式为文本文档(txt),查看文档是否乱码,通常不乱码。
则删除Matlab中的main.m的全部代码,将文本文档中不乱码的代码复制到Matlab中的main.m中。

程序设计

%% 创建混合网络架构
% 输入特征维度
numFeatures  = f_;
% 输出特征维度
numResponses = 1;
FiltZise = 10;
%  创建模型
    layers = [...
        % 输入特征
        sequenceInputLayer([numFeatures 1 1],'Name','input')
        sequenceFoldingLayer('Name','fold')
        % 特征学习
        (50,'Name','lstm1','RecurrentWeightsInitializer','He','InputWeightsInitializer','He')
       
        (optVars.NumOfUnits,'OutputMode',"last",'Name','bil4','RecurrentWeightsInitializer','He','InputWeightsInitializer','He')
        dropoutLayer(0.25,'Name','drop3')
        % 全连接层
        fullyConnectedLayer(numResponses,'Name','fc')
        regressionLayer('Name','output')    ];

    layers = layerGraph(layers);
    layers = connectLayers(layers,'fold/miniBatchSize','unfold/miniBatchSize');

%% 训练选项
% 批处理样本
MiniBatchSize =128;
% 最大迭代次数
MaxEpochs = 500;
    options = trainingOptions( 'adam', ...
        'MaxEpochs',500, ...
        'GradientThreshold',1, ...
        'InitialLearnRate',optVars.InitialLearnRate, ...
        'LearnRateSchedule','piecewise', ...
        'LearnRateDropPeriod',400, ...
        'LearnRateDropFactor',0.2, ...
        'L2Regularization',optVars.L2Regularization,...
        'Verbose',false, ...
        'Plots','none');

%% 训练混合网络
net = trainNetwork(XrTrain,YrTrain,layers,options);

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/129036772?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/kjm13182345320/article/details/128690229


http://www.niftyadmin.cn/n/4936087.html

相关文章

DRF的Serializer组件(源码分析)

1. 数据校验 drf中为我们提供了Serializer,他主要有两大功能: 对请求数据校验(底层调用Django的Form和ModelForm)对数据库查询到的对象进行序列化 示例一: 基于Serializer # models.py class UserInfo(models.Model):username…

Qt 之 QWidget QLabel

文章目录 前言一、Qt 工程介绍二、窗口组件1. QWidget 组件2. QLabel组件 总结 前言 一、Qt 工程介绍 Qt Creator 以工程项目的方式对源码进行管理一个Qt Creator工程包含不同类型的文件 。 .pro 项目描述文件.pro.user用户配置描述文件- .h头文件.cpp源文件.ui界面描述文件资…

二叉树的性质和完全二叉树的性质

二叉树的性质: 在二叉树的第i层至多有 2 i 1 ( i > 1 ) 2^{i1}(i>1) 2i1(i>1) 深度为k的二叉树最多有 2 k − 1 2^k-1 2k−1个结点 对于任意一棵二叉树T,如果其终端结点数为 n 0 n_0 n0​,度为2的结点数为 n 2 n_2 n2​,则 n 0 …

Unity C# 之 Http 获取网页的 html 数据,并去掉 html 格式等相关信息

Unity C# 之 Http 获取网页的 html 数据,并去掉 html 格式等相关信息 目录 Unity C# 之 Http 获取网页的 html 数据,并去掉 html 格式等相关信息 一、简单介绍 二、实现原理 三、注意事项 四、效果预览 五、关键代码 一、简单介绍 Unity中的一些知…

SpringMVC框架

一、简介 1.1 什么是MVC Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架, 通过把(M)Model,(V)View,(C)Controller分离,将web层…

Mac M2 Pro安装使用Cocoapods

Mac Pro M2安装使用Cocoapods 在新公司要做iOS开发,所以在新电脑上安装Cocoapods 在升级gem,sudo gem update --system,和安装cocoapods时都遇到如下的提示: ERROR: While executing gem ... (Errno::EPERM)Operation not per…

MATLAB图论合集(一)基本操作基础

本帖总结一些经典的图论问题,通过MATLAB如何计算答案。近期在复习考研,以此来巩固一下相关知识——虽然考研肯定不能用MATLAB代码哈哈,不过在实际应用中解决问题还是很不错的,比C易上手得多~ 图论中的图(Graph&#xf…

IC设计仿真云架构

对于IC仿真来说,最重要的是要安全、可维护、高性能的的HPC环境环境。 那么云上如何搭建起一套完整的IC仿真云环境呢? 这种架构应该长什么样子? 桌面虚拟化基础架构 将所有桌面虚拟机在数据中心进行托管并统一管理;同时用户能够…