【ELAMN预测】基于Elman神经网络预测股价附matlab
代码
1 简介
为了更好地把握股票价格的波动,应用了在处理序列数据输入输出具有优越性的E lman递归神经网络建立
股市预测模型,并用两支股票进行了检测,检测结果说明人工神经网络应用于中国股票市场的预测是可行和
有效的,有着良好的前景。
Elman 型回归神经元网络一般分为四层 :输入 层、 中间层(隐含层)、 承接层和输出层, 如图 3 所 示。其
输入层、 隐含层和输出层的连接类似于前馈 网络 , 输入层的单元仅起信号传输作用, 输出层单 元起线性
加权作用。隐含层单元的传递函数可采用 线性或非线性函数, 承接层又称为上下文层或状态 层, 它用来记
忆隐含层单元前一时刻的输出值, 可 以认为是一个一步延时算子。 Elman 回归神经元网络的特点是隐含
层的输出 通过承接层的延迟与存储, 自联到隐含层的输入, 这种自联方式使其对历史状态的数据具有敏感
性, 内部反馈网络的加入增加了网络本身处理动态信息 的能力 , 从而达 到了 动态建 模的 目的 。此 外,
Elman回归神经网络能够以任意精度逼近任意非线 性映射, 可以不考虑外部噪声对系统影响的具体形 式,
如果给出系统的输入输出数据对 , 就可以对系统进行建模 。
2 部分代码
%% 清空环境变量
clc;
clear all
close all
nntwarn off;
%% 数据载入
load data;
a=data;
%% 选取训练数据和测试数据
for i=1:6
p(i,:)=[a(i,:),a(i+1,:),a(i+2,:)];
end
% 训练数据输入
p_train=p(1:5,:);
% 训练数据输出
t_train=a(4:8,:);
% 测试数据输入
p_test=p(6,:);
% 测试数据输出
t_test=a(9,:);
% 为适应网络结构 做转置
p_train=p_train';
t_train=t_train';
p_test=p_test';