• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: Matlab
  • 标签: Elman  

资源简介

Elman神经网络预测,可以直接改数据进行预测,方便实用,自己可以调细节增大预测精度

资源截图

代码片段和文件信息

clearclc
close all


price =[
   66.8000
   68.1000
   66.9000
   67.3000
   70.7000
   72.7000
   72.7000
   74.9000
   73.8000
   75.6000
   78.1000
   78.6000
   79.0000
   79.4000
   80.2000
   81.2000
   81.9000
   82.5000
   83.0000
   83.2000
   85.6000
   86.6000
   88.8000
   91.0000
   93.3000
   93.5000
   94.9000
   97.4000
   96.3000
   96.5000
   96.4000
   97.5000
   98.0000
   99.4000
  100.1000];

whos
rng(now)

%% 2.构造样本集
% 数据个数
n=length(price);

% 确保price为列向量
price=price(:);

% x(n) 由x(n-1)x(n-2)...x(n-L)共L个数预测得到,相当于输入层.
L = 6;

% price_n:每列为一个构造完毕的样本,共n-L个样本
price_n = zeros(L+1 n-L);
for i=1:n-L
    price_n(:i) = price(i:i+L);
end

%% 划分训练、测试样本
% 将前17份数据划分为训练样本
% 后24份数据划分为测试样本,输入层

trainx = price_n(1:6 1:17);
trainy = price_n(7 1:17);

testx = price_n(1:6 18:end);
testy = price_n(7 18:end);

%% 创建Elman神经网络

% 包含12个神经元,训练函数为traingdx,隐含层
net=elmannet(1:212‘traingdx‘);

% 设置显示级别
net.trainParam.show=1;

% 最大迭代次数为1000次
net.trainParam.epochs=1000;

% 误差容限,达到此误差就可以停止训练
net.trainParam.goal=0.00001;

% 最多验证失败次数
net.trainParam.max_fail=5;

% 对网络进行初始化
net=init(net);

%% 网络训练

%训练数据归一化
[trainx1 st1] = mapminmax(trainx);
[trainy1 st2] = mapminmax(trainy);

% 测试数据做与训练数据相同的

评论

共有 条评论