短期风速预测|LSTM|ELM|批处理(matlab代码)

目录

1 主要内容

LSTM-长短时记忆

ELM-极限学习机

2 部分代码

3 程序结果

4 程序链接


主要内容

该程序是预测类的基础性代码,程序对河北某地区的气象数据进行详细统计,程序最终得到pm2.5的预测结果,通过更改数据很容易得到风速预测结果。程序主要分为三部分,分别是基于LSTM算法、基于ELM算法和基于LSTM和批处理组合算法,对于预测类程序,算法组合是创新的方向,很多预测都是通过智能算法对参数寻优+LSTM/ELM等算法进行组合,本次提供的三种基础性代码是对同一数据进行处理分析,并得到相应的预测结果,程序采用matlab编写,无需其他软件包,注释清楚,方便学习!

详实的气象数据是一大亮点。
  • LSTM-长短时记忆

  • ELM-极限学习机

极 限 学 习 机 是 在 原 来 单 隐 含 层 神 经 网 络 (Single-hidden Layer Feedforward Networks,SLFNs)上加以改进后,发展而成的新型智能算法。ELM 方法具有学习效率高的特点,被广泛应用于分类、回归、聚类和特征学习等问题中。作为 一种新型的学习算法,ELM 学习速度快、不容易陷入局部最优,对于单隐层神经网络,可以随机初始化输入权重和偏置并得到相应的输出权重,有效克制了局部 极限的问题。因为极限学习机不包括神经网络反向传播中参数优化的过程,而是 通过求解广义逆矩阵的途径一步求出隐含层的偏置量,这样既提高了算法的精度, 同时收敛速度更快,学习效果更好。

部分代码

%% 此程序为不含批训练的lstm
clear;clc;close all;format compact
%% 加载数据
qx1=xlsread('沧州气象日度数据.xlsx','B2:G362');%由于有缺失值,因此只读了前几列最后几列
qx2=xlsread('沧州气象日度数据.xlsx','J2:O362');
qx=[qx1 qx2];
wr=xlsread('沧州污染日度数据.xlsx','C2:C362');%污染数据比气象数据多几条,我把对应日期的数据删除了
input=[wr(1:end-1,:) qx(2:end,:)]';%输入为前一天的pm2.5+预测日的气象  输出为预测日的pm2.5
output=wr(2:end,:)';
​
​
input=mapminmax(input,0,1);
[output,outputns]=mapminmax(output,0,1);
%% 提取300个样本为训练样本,剩下样本为预测样本
n=1:size(input,2);
i=300;
train_data=input(:,n(1:i));
train_label=output(:,n(1:i));
P_test=input(:,n(i+1:end));
T_test=output(:,n(i+1:end));
​
data_length=size(train_data,1);
data_num=size(train_data,2);
%% 网络参数初始化
% 结点数设置
input_num=data_length;%输入层节点
cell_num=3;%隐含层节点
output_num=1;%输出层节点
dropout=0;%dropout系数
cost_gate=1e-10;% 误差要求精度
ab=4*sqrt(6/(cell_num+output_num));%  利用均匀分布进行初始化
% 网络中门的偏置
bias_input_gate=rand(1,cell_num);
bias_forget_gate=rand(1,cell_num);
bias_output_gate=rand(1,cell_num);
%% 网络权重初始化
weight_input_x=rand(input_num,cell_num)/ab;
weight_input_h=rand(output_num,cell_num)/ab;
weight_inputgate_x=rand(input_num,cell_num)/ab;
weight_inputgate_c=rand(cell_num,cell_num)/ab;
weight_forgetgate_x=rand(input_num,cell_num)/ab;
weight_forgetgate_c=rand(cell_num,cell_num)/ab;
weight_outputgate_x=rand(input_num,cell_num)/ab;
weight_outputgate_c=rand(cell_num,cell_num)/ab;
%hidden_output权重
weight_preh_h=rand(cell_num,output_num);
%网络状态初始化
h_state=rand(output_num,data_num);
cell_state=rand(cell_num,data_num);
%% 网络训练学习
for iter=1:100%训练次数iter
%     yita=0.1;yita=1/(10+sqrt(iter)); %自适应学习率for m=1:data_num%前馈部分if(m==1)gate=tanh(train_data(:,m)'*weight_input_x);input_gate_input=train_data(:,m)'*weight_inputgate_x+bias_input_gate;output_gate_input=train_data(:,m)'*weight_outputgate_x+bias_output_gate;for n=1:cell_numinput_gate(1,n)=1/(1+exp(-input_gate_input(1,n)));output_gate(1,n)=1/(1+exp(-output_gate_input(1,n)));endforget_gate=zeros(1,cell_num);forget_gate_input=zeros(1,cell_num);cell_state(:,m)=(input_gate.*gate)';elsegate=tanh(train_data(:,m)'*weight_input_x+h_state(:,m-1)'*weight_input_h);input_gate_input=train_data(:,m)'*weight_inputgate_x+cell_state(:,m-1)'*weight_inputgate_c+bias_input_gate;forget_gate_input=train_data(:,m)'*weight_forgetgate_x+cell_state(:,m-1)'*weight_forgetgate_c+bias_forget_gate;output_gate_input=train_data(:,m)'*weight_outputgate_x+cell_state(:,m-1)'*weight_outputgate_c+bias_output_gate;for n=1:cell_numinput_gate(1,n)=1/(1+exp(-input_gate_input(1,n)));forget_gate(1,n)=1/(1+exp(-forget_gate_input(1,n)));output_gate(1,n)=1/(1+exp(-output_gate_input(1,n)));endcell_state(:,m)=(input_gate.*gate+cell_state(:,m-1)'.*forget_gate)';endpre_h_state=tanh(cell_state(:,m)').*output_gate;h_state(:,m)=(pre_h_state*weight_preh_h)';%误差计算Error=h_state(:,m)-train_label(:,m);Error_Cost(1,iter)=sum(Error.^2);if(Error_Cost(1,iter)1;break;else %权重更新

程序结果

上面三个图是标准LSTM算法得到的预测结果,相对平均误差为0.4828。

上述两个图是LSTM+批处理得到的预测结果,相对平均误差为0.3690,可见增加批处理对于预测精度提成达23.6%。

上述两个图是ELM方法预测结果,相对平均误差为0.4052,较LSTM算法有所提升。

4 程序链接

 短期风速预测|LSTM|ELM|批处理

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

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

相关文章

WSL2安装历程

WLS2安装 1、系统检查 安装WSL2必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11。 查看 Windows 版本及内部版本号,选择 Win R,然后键入winver。 2、家庭版升级企业版 下载HEU_KMS_Activ…

Django模板加载与响应

前言 Django 的模板系统将 Python 代码与 HTML 代码解耦,动态地生成 HTML 页面。Django 项目可以配置一个或多个模板引擎,但是通常使用 Django 的模板系统时,应该首先考虑其内置的后端 DTL(Django Template Language,D…

【Flutter】Flutter Web 开发 如何从 URL 中获取参数值

【Flutter】Flutter Web 开发 如何从 URL 中获取参数值 文章目录 一、前言二、Flutter Web 中的 URL 处理三、如何从 URL 中获取参数四、实际业务中的用法五、完整示例六、总结 一、前言 大家好!我是小雨青年,今天我想和大家分享一下在 Flutter Web 开发…

UGUI交互组件Button

一.初识Button对象 从菜单中创建Button对象,Button的文本由子节点Text对象显示,Button对象的组件除了基础组件外,还有Image用来显示Button常规态的图片,还有Button组件用来控制点击过渡效果和点击事件的响应。 二.Button组件的属…

C#,数值计算——Ranq1的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// Recommended generator for everyday use.The period is 1.8E19. Calling /// conventions same as Ran, above. /// </summary> public class Ranq1 { …

【2023年11月第四版教材】第17章《干系人管理》(第二部分)

第17章《干系人管理》&#xff08;第二部分&#xff09; 4 过程1-识别干系人4.1 数据收集★★★4.3数据分析4.4 权力利益方格4.5 数据表现&#xff1a;干系人映射分析和表现★★★ 5 过程2-规划干系人参与5.1 数据分析5.2 数据表现★★★5.2.1 干系人参与度评估矩阵★★★ 5.3 …

git_SSL certificate problem: unable to get local issuer certificate解决办法

拉取问题 再拉取代码的时候&#xff0c;报这个错误 这是由于当你通过HTTPS访问Git远程仓库的时候&#xff0c;如果服务器上的SSL证书未经过第三方机构认证&#xff0c;git就会报错。原因是因为未知的没有签署过的证书意味着可能存在很大的风险。解决办法就是通过下面的命令将…

【算法分析与设计】回溯法(上)

目录 一、学习要点1.1 回溯法1.2 问题的解空间1.3 0-1背包问题的解空间1.4 旅行售货员问题的解空间1.5 生成问题状态的基本方法 二、回溯法的基本思想三、回溯算法的适用条件四、递归回溯五、迭代回溯六、子集树与排列树七、装载问题八、批处理作业调度问题 一、学习要点 理解回…

操作系统初探 - 进程的概念

目录 预备知识 冯诺依曼和现代计算机结构 操作系统的理解 进程和PCB的概念 PCB中的信息 查看进程信息的指令 - ps pid 进程状态 预备知识 在学习操作系统之前我们需要先了解一下如下的预备知识。 冯诺依曼和现代计算机结构 美籍匈牙利科学家冯诺依曼最先提出“程序存…

POJ 3109 Inner Vertices 离散化+树状数组

一、题目大意 围棋棋盘&#xff0c;如果某个坐标上下左右的四个方向都存在棋子&#xff0c;那么ans1&#xff0c;根据输入的棋子数量&#xff0c;求出ans的数量。 二、解题思路 题目中有说到如果程序不会结束&#xff0c;那么输出-1&#xff0c;这其实是无源之水&#xff0c…

【爬虫】用wget命令爬虫的简易教程

文章目录 1. 获取登录的请求2. 用postman模拟登录请求3. 用wget模拟登录请求并保存cookie4. 开始爬取网站5. 查看爬取结果6. 网站爬虫简易教程 爬取需要登录的网站的资源 背景&#xff1a;对于一些网站需要使用用户名和密码登录并且使用了https&#xff0c;我们如果不通过凭证将…

win10系统任务栏图标变成白色的解决办法

我平时都是用滴答清单进行管理这个自己的日程代办的&#xff0c;但是今天打开的时候发现这个快捷方式突然变成纯白色的了&#xff0c;重启电脑之后&#xff0c;这个图标的样式仍然没有变化。上网查找解决办法之后&#xff0c;终于搞好了&#xff0c;于是就有了下面的教程。 为什…

大数据Flink(九十五):DML:Window TopN

文章目录 DML:Window TopN DML:Window TopN Window TopN 定义(支持 Streaming):Window TopN 是一种特殊的 TopN,它的返回结果是每一个窗口内的 N 个最小值或者最大值。 应用场景

数据结构—归并排序-C语言实现

引言&#xff1a;归并排序跟快速排序一样&#xff0c;都运用到了分治的算法&#xff0c;但是归并排序是一种稳定的算法&#xff0c;同时也具备高效&#xff0c;其时间复杂度为O(N*logN) 算法图解&#xff1a; 然后开始归并&#xff1a; 就是这个思想&#xff0c;拆成最小子问题…

数据结构与算法----递归

1、迷宫回溯问题 package com.yhb.code.datastructer.recursion&#xffe5;5;public class MiGong {public static void main(String[] args) {// 先创建一个二维数组&#xff0c;模拟迷宫// 地图int[][] map new int[8][7];// 使用1 表示墙// 上下全部置为1for (int i 0; i…

BASH shell脚本篇4——函数

这篇文章介绍下BASH shell中的函数。之前有介绍过shell的其它命令&#xff0c;请参考&#xff1a; BASH shell脚本篇1——基本命令 BASH shell脚本篇2——条件命令 BASH shell脚本篇3——字符串处理 函数是代码重用的最重要方式。Bash函数可以定义为一组命令&#xff0c;在b…

华为数通方向HCIP-DataCom H12-831题库(单选题:161-180)

第161题 某台路由器Router LSA如图所示,下列说法中错误的是? A、本路由器已建立邻接关系 B、本路由器为DR C、本路由支持外部路由引入 D、本路由器的Router ID为10.0.12.1 答案: B 解析: 一类LSA的在transnet网络中link id值为DR的route id ,但Link id的地址不是10.0.12.…

asp.net core mvc Razor +dapper 增删改查,分页(保姆教程)

说明&#xff1a;本demo使用sqlserver数据库&#xff0c;dapper orm框架 完成一张学生信息表的增删改查&#xff0c;前端部分使用的是Razor视图&#xff0c; Linq分页 HtmlHelper。&#xff08;代码随便写的&#xff0c;具体可以自己优化&#xff09; //实现效果如下&#xff0…

管理经济学基本概念(二): 规模经济、需求曲线、供给曲线等

1、关键术语 1.1、边际报酬递减规律 边际报酬递减规律是指随着产出量的扩大&#xff0c;边际生产率(与增量投入要素相联系的增量产出量)最终会下降。 递增的边际生产率意味着边际成本递增。 递增的边际成本最终导致平均成本递增。 1.2、规模经济 (1) 如果长期平均成本相对…

JIRA 如何在项目之间移动 Issue

需要使用 JIRA 的查找功能。 把需要移动的 Issue 先全部找到&#xff0c;然后选择 Tools 下面的所有 Issues 批量操作页面 在随后的页面中&#xff0c;将会出现批量操作的页面。 在这里&#xff0c;可以对需要进行批量操作的问题&#xff0c;进行全部选择。 然后单击下一步继…