【预测模型】基于BP神经网络预测价格matlab代码

192 阅读4分钟

1 简介

BP神经网络模型是目前应用最为广泛神经网络之一。它的本质是通过对历史数据的学习找出数据变化趋势之间的非线性关系,并通过输出量与预期值之间的误差不断调整网络中各个单元的权重,使整个网络的误差最小。因此,为达到较好的预测精度,需要对网络预测模型自身的结构进行确定。

1)网络层数的设计。本文需要构建的预测模型,主要是用于研究股指期货在短时间内收盘价格的走势。由于我国股指期货市场存在的时间比较短,历史数据有限。在这种情况下,不需选择增加网络层数的办法而是选择增加隐含层神经元节点的数目来提高输出结果的精度。因此,本文选用单一隐层的 BP神经网络模型。

2)输入层神经节点的设计。在单因素预测中仅使用股指期货每日收盘价格作为原始数据。选择5d(一周的交易天数)作为预测的分析周期,即用5d的历史交易收盘价格数据作为预测依据,依次将顺序5d的数据作为 BP神经网络的一个输入数值,其后一天的数据作为网络数据的目标数据,因此,将输入层神经元节点数目设为5;在多因素预测模型中,使用合约的收盘价、成交量、OBV 指标、WR1指标、沪深300指数收盘价作为输入向量,输入向量共有5个,因此,输入层神经元节点数目也为5。

3)传递函数和学习函数的设计。本文所设计的模型均采用了相同的隐含层传递函数tansig、输出层传递函数logsig和学习函数learngdm。

4)性能函数的确定。网络误差能直观的反映预测效果的好坏程度,是预测精度的具体反映。本文在构建 BP神经网络模型时选择均方误差来确定网络的误差情况。

5)隐含层神经节点的设计。在模型中其它参数值保持不变的情况下,本文通过调整隐含层神经节点的数目进行重复实验,通过对比输出误差,确定最佳隐含层神经元节点的数目。对于单因素 BP神经网络,当隐含层神经元节点的数目为24时,BP神经网络的均方误差最小,即对函数的逼近效果最好,此时的均方误差为1.1609;对于多因素 BP神经网络,隐含层神经元节点数目为5时,BP神经网络的均方误差达到最小,最小值为0.0126。根据以上分析,单因素 BP神经网络预测模型的结构为:单一隐含层和单一输出层;输入层神经节点数目为5 ;隐含层神经节点数目为24;输出层神经节点数目为1;隐含层传递函数、输出层传递函数、学习函数分别为tansig、logsig和learngdm;性能函数为 mse。多因素 BP神经网络预测模型的隐含层神经元节点数目为5,模型的其它属性与单因素 BP神经网络模型一致。

2 部分代码

clc;
clear all
close all
data=xlsread('1.xlsx','秦皇岛港动力煤价格(每周的价格)','D3:D673')';
lag=3;% 采用前lag时刻的价格数据作为神经网络的输入变量,第 lag+1 时刻价格数据作为输出变量。
T=1:length(data); %输入时间
x=data;
n=length(data);
%% 训练集制作
inputs=zeros(lag,n-lag);
for i=1:n-lag
   inputs(:,i)=x(i:i+lag-1)';%形成训练集输入网络
end
targets=x(lag+1:end);%训练集输出
%% 数据归一化
[p_train, ps_input] = mapminmax(inputs,0,1);
[t_train, ps_output] = mapminmax(targets,0,1);
%% 创建网络
%     net=newff(P,T,[S1 S2…SN1],{TF1 TF2…TFN1},BTF,BLF,PF);%
% PT:输入矩阵和目标矩阵

f_out = sim(net,p_test);%预测下一
%% 数据反归一化
T_sim = mapminmax('reverse',f_out,ps_output);%% 画出预测图

figure(1)
plot(1:length(T_sim),T_sim,'ro-',1:length(T_sim),data,'b*-');
legend('预测幅值','实际幅值');
xlabel('时间序列')
ylabel('幅值')
img =gcf;  %获取当前画图的句柄
print(img, '-dpng''-r600''./运行结果1.png')         %即可得到对应格式和期望dpi的图像
figure(2)
plot(1:length(T_sim),T_sim-data,'r-');
title('误差分析')
disp('误差大小=')
mean(T_sim-data)
img =gcf;  %获取当前画图的句柄
print(img, '-dpng''-r600''./运行结果.png')         %即可得到对应格式和期望dpi的图像

3 仿真结果

4 参考文献

[1]胡雪棉, and 赵国浩. "基于Matlab的BP神经网络煤炭需求预测模型." 中国管理科学 S1(2008):5.

部分理论引用网络文献,若有侵权联系博主删除。

5 MATLAB代码与数据下载地址

见博客主页