clc
clear
close all
% num1 = xlsread('降雨时间序列2.xlsx');
num2 = xlsread('a.xlsx');
num = [];
mx = (length(num2)/24);
for ii = 1:mx-1
num = [num;num2((ii-1)*24+1:24*ii+24,5)'];
end
train_data1 = num(1:1294,1:24)';%训练数据的输入数据
test_data1 = num(1:1294,25:48)';%训练数据的输出数据
[train_data,inputps]=mapminmax(train_data1,0,1);%训练数据的输入数据的归一化
[trainout,outputps]=mapminmax(test_data1,0,1);%训练数据的输出数据的归一化
data_length=size(train_data,1);
data_num=size(train_data,2);
%% 网络参数初始化
% 结点数设置
input_num=24;
cell_num=20;
output_num=24;
% 网络中门的偏置
bias_input_gate=rand(1,cell_num);
bias_forget_gate=rand(1,cell_num);
bias_output_gate=rand(1,cell_num);
% ab=1.2;
% bias_input_gate=ones(1,cell_num)/ab;
% bias_forget_gate=ones(1,cell_num)/ab;
% bias_output_gate=ones(1,cell_num)/ab;
%网络权重初始化
ab=15;
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);
%网络状态初始化
cost_gate=1e-15;
h_state=rand(output_num,data_num);
cell_state=rand(cell_num,data_num);
%% 网络训练学习
for iter=1:5
iter
yita=0.1; %每次迭代权重调整比例
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_num
input_gate(1,n)=1/(1+exp(-input_gate_input(1,n)));
output_gate(1,n)=1/(1+exp(-output_gate_input(1,n)));
end
forget_gate=zeros(1,cell_num);
forget_gate_input=zeros(1,cell_num);
cell_state(:,m)=(input_gate.*gate)';
else
gate=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_num
input_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)));
end
cell_state(:,m)=(input_gate.*gate+cell_state(:,m-1)'.*forget_gate)';
end
pre_h_state=tanh(cell_state(:,m)').*output_gate;
h_state(:,m)=(pre_h_state*weight_preh_h)';
%误差计算
Error=h_state(:,m)-trainout(:,m);
Error_Cost(1,iter)=sum(Error.^2);
% if(Error_Cost(1,iter)<cost_gate)
if iter==50
flag=1;
break;
else
[ weight_input_x,...
weight_input_h,...
weight_inputgate_x,...
weight_inputgate_c,...
weight_forgetgate_x,...
weight_forgetgate_c,...
weight_outputgate_x,...
weight_outputgate_c,...
weight_preh_h ]=fun_weight(m,yita,Error,...
weight_input_x,...
weight_input_h,...
weight_inputgate_x,...
weight_inputgate_c,...
weight_forgetgate_x,...
weight_forgetgate_c,...
weight_outputgate_x,...
weight_outputgate_c,...
weight_preh_h,...
cell_state,h_state,...
input_gate,forget_gate,...
output_gate,gate,...
train_data,pre_h_state,...
input_gate_input,...
output_gate_input,...
forget_gate_input);
end
end
% if(Error_Cost(1,iter)<cost_gate)
% break;
% end
end
Error_Cost = sort(Error_Cost,'descend');
plot(Error_Cost,'k-*');
title('误差曲线图');
%% 使用后121个检验
%数据加载
test_final11=num(:,1:24)';%测试数据的输入数据
test_final1=mapminmax('apply',test_final11,inputps);
test_output=num(1294,25:48)'; %测试数据的输出数据
%前馈
m=1294;
lstmout= [];
for ii = 1:1
test_final = test_final1(:,ii);
gate=tanh(test_final'*weight_input_x+h_state(:,m(ii)-1)'*weight_input_h);
input_gate_input=test_final'*weight_inputgate_x+cell_state(:,m(ii)-1)'*weight_inputgate_c+bias_input_gate;
forget_gate_input=test_final'*weight_forgetgate_x+cell_state(:,m(ii)-1)'*weight_forgetgate_c+bias_forget_gate;
output_gate_input=test_final'*weight_outputgate_x+cell_state(:,m(ii)-1)'*weight_outputgate_c+bias_output_gate;
for n=1:cell_num
input_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)));
end
cell_state_test=(input_gate.*gate+cell_state(:,m(ii)-1)'.*forget_gate)';
pre_h_state=tanh(cell_state_test').*output_gate;
h_state_test=(pre_h_state*weight_preh_h)';
lstmout = [lstmout h_state_test];
end
% test_output
% lstmout
% test_output1 = (mapminmax('reverse',test_output,outputps));
lstmout1= (mapminmax('reverse',lstmout,outputps));
figure (2)
plot(lstmout1,'r-*')
hold on
plot(test_output,'b-o')
xlabel('测试集样本编号')
ylabel('降雨量')
title('长短区期记忆神经网络')
legend('预测输出降雨量','实际降雨量')
%5
m=2:1295;
lstmout= [];
for ii = 1:1294
test_final = test_final1(:,ii);
gate=tanh(test_final'*weight_input_x+h_state(:,m(ii)-1)'*weight_input_h);
input_gate_input=test_final'*weight_inputgate_x+cell_state(:,m(ii)-1)'*weight_inputgate_c+bias_input_gate;
forget_gate_input=test_final'*weight_forgetgate_x+cell_state(:,m(ii)-1)'*weight_forgetgate_c+bias_forget_gate;
output_gate_input=test_final'*weight_outputgate_x+cell_state(:,m(ii)-1)'*weight_outputgate_c+bias_output_gate;
for n=1:cell_num
input_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)));
end
cell_state_test=(input_gate.*gate+cell_state(:,m(ii)-1)'.*forget_gate)';
pre_h_state=tanh(cell_state_test').*output_gate;
h_state_test=(pre_h_state*weight_preh_h)';
lstmout = [lstmout h_state_test];
end
moxing =sum(lstmout')/1294;
figure
plot(moxing,'k-')
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于MATALB编程的自编码长短期神经网络,用长短期神经网络预测降雨量预测,输出预测图,误差图,收敛图等,代码完整,数据齐全,代码可以直接运行,有注释,方便扩展到其他数据
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![thumb](https://img-home.csdnimg.cn/images/20210720083646.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/XLSX.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/XLSX.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/XLSX.png)
共 6 条
- 1
![avatar](https://profile-avatar.csdnimg.cn/3165706ad4e540aeb062dd5ebcf069a7_abc991835105.jpg!1)
![avatar-vip](https://csdnimg.cn/release/downloadcmsfe/public/img/user-vip.1c89f3c5.png)
神经网络机器学习智能算法画图绘图
- 粉丝: 2513
- 资源: 618
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- MyBatisCodeHelperPro 3.3.2-2322 2023.2-2024.1
- 基于Python的简单的学生成绩管理程序设计(课程设计)
- jdk-8u20-windows-x64安装版本-jdk-8u301-linux-x64解压版
- 植物大战僵尸杂交版 修改阳光和冷却
- html css js网页设计ntion-model-for-开发笔记
- 数据库课程设计-processing开发笔记
- matlab画图sic-开发demo
- 数据库原理课程设计-图书馆数据库管理系统
- IEC101Sim IEC870-5-101协议仿真主站、子站 (含源码 C++Builder)
- 2212503007陈熙炜跨境2202作业2.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)
- 1
- 2
前往页