200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 【预测模型】基于天牛须算法优化ELman神经网络实现数据预测matlab代码

【预测模型】基于天牛须算法优化ELman神经网络实现数据预测matlab代码

时间:2020-03-10 07:15:08

相关推荐

【预测模型】基于天牛须算法优化ELman神经网络实现数据预测matlab代码

​1 简介

Elman 神经网络是一种局部递归神经网络,其结构包括输入层、隐含层、承接层和输出层,见图 1。输入层单元起数据输入作用; 输出层单元作线性加权操作; 隐含层单元的传递函数可采用线性或非线性函数。承接层单元用来记忆和储存隐含层单元前一时刻的输出值。承接层与隐含层的特殊连接方式使该网络模型对时序动态数据具有敏感性,因此使得Elman神经网络处理复杂时变数据的能力得到了提升。

2 部分代码

```matlab

clear all

clc

%% bas优化elman网络

%% 自变量个数

x_number=49;

%% 因变量个数

y_number=1;

%% 网络节点个数

inputnum=x_number; % 输入层

hiddennum=50; % 隐含层

outputnum=y_number; % 输出层

iterations=2000; % 迭代次数

%% 导入数据

[data_train,~,raw_train]=xlsread('train.xlsx');

[data_predict,~,raw_predict]=xlsread('predict.xlsx');

%% 自变量

x_train=data_train(2:366,5:end);

x_test=data_train(367:397,5:end);

%% 因变量

y_train=data_train(367:731,6);

y_test=data_predict(2:end,6);

%% 自变量归一化

[x,xn]=mapminmax([x_train;x_test]',-1,1);

trainx=x(:,1:size(x_train,1));

testx=x(:,size(x_train,1)+1:end);

%% 因变量归一化

[trainy,yn]=mapminmax(y_train',-1,1);

%% 维度

global dim

dim=inputnum*hiddennum+hiddennum*hiddennum+outputnum*hiddennum+hiddennum*outputnum+outputnum;

% 用训练的神经网络对测试组数据进行训练

nh=sim(net,testx);

% 网络输出反归一化

BPnh=mapminmax('reverse',nh,yn);

%% 预测值

predict=BPnh';

%% 真实值

real=y_test;

%% 误差

err=(predict-real)./real;

figure(1)

plot(fbest_store)

%% 绘图

figure(2)

subplot(121)

plot(predict,'k-*')

hold on

plot(real,'b--o')

legend('预测值','真实值')

title(['BAS优化ELman神经网络预测误差:',num2str(var(err))])

subplot(122)

plot(err,'o-')

title('BAS优化ELman神经网络预测误差')

```

3 仿真结果

4 参考文献

[1]胡程磊等. "一种基于天牛须优化算法和神经网络的建筑能耗预测方法.".

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。