给自己的公司做网站怎么做好,北京网站制作公司有哪些,wordpress智慧面板,学校网站建设开发目录 1 主要内容
LSTM-长短时记忆
ELM-极限学习机
2 部分代码
3 程序结果
4 程序链接 1 主要内容
该程序是预测类的基础性代码#xff0c;程序对河北某地区的气象数据进行详细统计#xff0c;程序最终得到pm2.5的预测结果#xff0c;通过更改数据很容易得到风速预测结…目录 1 主要内容
LSTM-长短时记忆
ELM-极限学习机
2 部分代码
3 程序结果
4 程序链接 1 主要内容
该程序是预测类的基础性代码程序对河北某地区的气象数据进行详细统计程序最终得到pm2.5的预测结果通过更改数据很容易得到风速预测结果。程序主要分为三部分分别是基于LSTM算法、基于ELM算法和基于LSTM和批处理组合算法对于预测类程序算法组合是创新的方向很多预测都是通过智能算法对参数寻优LSTM/ELM等算法进行组合本次提供的三种基础性代码是对同一数据进行处理分析并得到相应的预测结果程序采用matlab编写无需其他软件包注释清楚方便学习 详实的气象数据是一大亮点。 LSTM-长短时记忆 ELM-极限学习机 极 限 学 习 机 是 在 原 来 单 隐 含 层 神 经 网 络 (Single-hidden Layer Feedforward NetworksSLFNs)上加以改进后发展而成的新型智能算法。ELM 方法具有学习效率高的特点被广泛应用于分类、回归、聚类和特征学习等问题中。作为 一种新型的学习算法ELM 学习速度快、不容易陷入局部最优对于单隐层神经网络可以随机初始化输入权重和偏置并得到相应的输出权重有效克制了局部 极限的问题。因为极限学习机不包括神经网络反向传播中参数优化的过程而是 通过求解广义逆矩阵的途径一步求出隐含层的偏置量这样既提高了算法的精度 同时收敛速度更快学习效果更好。 2 部分代码
%% 此程序为不含批训练的lstm
clear;clc;close all;format compact
%% 加载数据
qx1xlsread(沧州气象日度数据.xlsx,B2:G362);%由于有缺失值因此只读了前几列最后几列
qx2xlsread(沧州气象日度数据.xlsx,J2:O362);
qx[qx1 qx2];
wrxlsread(沧州污染日度数据.xlsx,C2:C362);%污染数据比气象数据多几条我把对应日期的数据删除了
input[wr(1:end-1,:) qx(2:end,:)];%输入为前一天的pm2.5预测日的气象 输出为预测日的pm2.5
outputwr(2:end,:);
inputmapminmax(input,0,1);
[output,outputns]mapminmax(output,0,1);
%% 提取300个样本为训练样本剩下样本为预测样本
n1:size(input,2);
i300;
train_datainput(:,n(1:i));
train_labeloutput(:,n(1:i));
P_testinput(:,n(i1:end));
T_testoutput(:,n(i1:end));
data_lengthsize(train_data,1);
data_numsize(train_data,2);
%% 网络参数初始化
% 结点数设置
input_numdata_length;%输入层节点
cell_num3;%隐含层节点
output_num1;%输出层节点
dropout0;%dropout系数
cost_gate1e-10;% 误差要求精度
ab4*sqrt(6/(cell_numoutput_num));% 利用均匀分布进行初始化
% 网络中门的偏置
bias_input_gaterand(1,cell_num);
bias_forget_gaterand(1,cell_num);
bias_output_gaterand(1,cell_num);
%% 网络权重初始化
weight_input_xrand(input_num,cell_num)/ab;
weight_input_hrand(output_num,cell_num)/ab;
weight_inputgate_xrand(input_num,cell_num)/ab;
weight_inputgate_crand(cell_num,cell_num)/ab;
weight_forgetgate_xrand(input_num,cell_num)/ab;
weight_forgetgate_crand(cell_num,cell_num)/ab;
weight_outputgate_xrand(input_num,cell_num)/ab;
weight_outputgate_crand(cell_num,cell_num)/ab;
%hidden_output权重
weight_preh_hrand(cell_num,output_num);
%网络状态初始化
h_staterand(output_num,data_num);
cell_staterand(cell_num,data_num);
%% 网络训练学习
for iter1:100%训练次数iter
% yita0.1;yita1/(10sqrt(iter)); %自适应学习率for m1:data_num%前馈部分if(m1)gatetanh(train_data(:,m)*weight_input_x);input_gate_inputtrain_data(:,m)*weight_inputgate_xbias_input_gate;output_gate_inputtrain_data(:,m)*weight_outputgate_xbias_output_gate;for n1:cell_numinput_gate(1,n)1/(1exp(-input_gate_input(1,n)));output_gate(1,n)1/(1exp(-output_gate_input(1,n)));endforget_gatezeros(1,cell_num);forget_gate_inputzeros(1,cell_num);cell_state(:,m)(input_gate.*gate);elsegatetanh(train_data(:,m)*weight_input_xh_state(:,m-1)*weight_input_h);input_gate_inputtrain_data(:,m)*weight_inputgate_xcell_state(:,m-1)*weight_inputgate_cbias_input_gate;forget_gate_inputtrain_data(:,m)*weight_forgetgate_xcell_state(:,m-1)*weight_forgetgate_cbias_forget_gate;output_gate_inputtrain_data(:,m)*weight_outputgate_xcell_state(:,m-1)*weight_outputgate_cbias_output_gate;for n1:cell_numinput_gate(1,n)1/(1exp(-input_gate_input(1,n)));forget_gate(1,n)1/(1exp(-forget_gate_input(1,n)));output_gate(1,n)1/(1exp(-output_gate_input(1,n)));endcell_state(:,m)(input_gate.*gatecell_state(:,m-1).*forget_gate);endpre_h_statetanh(cell_state(:,m)).*output_gate;h_state(:,m)(pre_h_state*weight_preh_h);%误差计算Errorh_state(:,m)-train_label(:,m);Error_Cost(1,iter)sum(Error.^2);if(Error_Cost(1,iter)1;break;else %权重更新3 程序结果 上面三个图是标准LSTM算法得到的预测结果相对平均误差为0.4828。 上述两个图是LSTM批处理得到的预测结果相对平均误差为0.3690可见增加批处理对于预测精度提成达23.6%。 上述两个图是ELM方法预测结果相对平均误差为0.4052较LSTM算法有所提升。 4 程序链接 短期风速预测|LSTM|ELM|批处理