bp神经网络进行交通预测的matlab源代码_神经网络进行股票价格预测软件----MATLAB--毕业设计...

f59b40aed9376625c90cfcfdfcd63fbd.png

一、BP神经网络的步骤

(1)根据评价指标集, 确定BP 网络中输入节点的个数, 即为指标个数;

(2)确定BP 网络的层数, 一般采用具有一个输入层, 一个隐含层和一个输出层的三层网络模型结构; 明确评价结果, 输出层的节点数为1;

(3)对指标值进行标准化处理, 然后作为训练样本和检验样本;

(4)网络状态初始化, 对连接权值wij 和阈值θj赋予( 0, 1)之间的随机数;

(5)输入样本, 从前往后计算各层神经元输出yj ;

(6)对输出层计算权值误差E;

(7)从后往前计算各隐层的权值误差δ'j =f '(netj)·l !δlvlj ;

(8)计算并保存各权值修正4量Δwij(n)=- ηδjxi+αΔwij(n- 1);

(9)修正权值wij(n+1)=wij(n)+Δwij(n);

(10)输入另外一样本, 转到步骤⑤ , 直到网络收敛且输出误差小于允许值。

二、具体原理应用

(1) 网络层数和ANN 输入结点的确定

通常,我们取三层网络模型。输入层起缓冲存储器的作用,它接受外部的输入数据, 因此节点数取决于输入矢量的维数。股价走势呈波浪形式展开, 具有周期性。技术分析中, 分析周期的选择是否恰当, 对预测结果有直接影响。由于时间、任务量及便于选择等原因, 这里选择为1日, 即date=1。

(2) 数据的预处理

数据预处理是将从股市得到的数据转化为能被ANN 识别的输入数据。设ANN 从n日开始预测股价涨跌, 股票最近已成交的原始数据序列{x' (t)},{x(t)}为处理后输入ANN 的数据序列, 作如下处理

x' =date- 1i = 0 !x' (n- 1)date, x(t)= x' (t)- x'x'+0.5。

(3)隐层的节点数

一般认为, 隐层节点数与求解问题的要求 输入输出单元数多少都有直接的关系。对于BP 网络, 参照前人经验, 可以参照以下公式进行设计:n="ni +n0 +a。

式中n 为隐层节点数; ni 为输入节点数; n0 为输出节点数;a 为1- 10 之间的常数。

(4) 输出结点定义

人工神经网络输出结点数为1, 取股价变化趋势的阈值a=0 选的一段时间涨跌的平均值; 预测步长k=1。输出结点Y(t)

定义如下: Y(t)=0 时, 预测股价在t+1 开始的单日涨幅或跌幅不超过a, 即预计处于下跌趋势; Y(t)=1 时预计股价在t+1 开始的单日内处于上涨趋势, 上升幅度累计超过a。

(5) 网络的其它参数确定

隐层结点数为6, 结点作用函数为S 函数, 即f(s)= 11+e- s;学习系数为0.7。学习时要求输出误差d≤0.1。预测时输出层的输出大于0.5 判为1; 小于或等于0.5 判为0。

三、程序解析

1、进入窗口程序窗口看

dd45312366d3e759a710ea7663f4f3c5.png
(1)“点击进入”按钮
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
yucexianchang;
set(gupiaoyuce,'Visible','off');
(2)“退出”按钮
% --- Executes on button press in exit_pushbutton.
function exit_pushbutton_Callback(hObject, eventdata, handles)
% hObject    handle to exit_pushbutton (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
Close;

2、股票预测窗口

46111a02f46993e84cb7162e167aecb5.png

模拟功能:

94fb02ba84be147369a01bcef5aa333d.png
模拟

98a174c4d9ad2a734707de24ff3b7f96.png
绘图

(1)“模拟”按钮CallBack函数

% --- Executes on button press in moni_pushbutton.
function moni_pushbutton_Callback(hObject, eventdata, handles)
% hObject handle to moni_pushbutton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global PD ED PW EW; %全局变量
danwei=get(handles.danwei_popupmenu,'Value');
xiangmu=get(handles.xiangmu_popupmenu,'Value');
danweishu=str2num(get(handles.danweishu_edit,'String'));
jingdu=str2num(get(handles.jingdu_edit,'String'));
[PD,ED]=yuce_day(danweishu,jingdu);%调用yuce_day.m函数进行预测
[PW,EW]=yuce_week(danweishu,jingdu);%调用yuce_week.m函数进行预测

(2)股票预测核心函数(yuce_day.m)

[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);%对要用以学习的数据作归一化处理
%建立BP网络,并初始化训练参数
net=newff(minmax(pn),[accuracy,4],{'tansig','purelin'},'traingdm');
%网络参数设置
inputWeights=net.IW{1,1};
inputbias=net.b{1};
layerWeights=net.IW{1,1};
layerbias=net.b{2};
%训练函数参数设置
net.trainParam.show=50;
net.trainParam.epochs=10000;
net.trainParam.mc=0.9;
net.trainParam.goal=0.01;
net.trainParam.lr=0.05;
%利用traingdm训练函数对网络进行自学习训练
net=train(net,pn,tn);
p2=A(16:20,1:4);
p2=p2';

(4)“画图”按钮CallBack函数

% --- Executes on button press in plot_pushbutton.
function plot_pushbutton_Callback(hObject, eventdata, handles)
% hObject handle to plot_pushbutton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global PD ED PW EW;%定义全局变量
danwei=get(handles.danwei_popupmenu,'Value');
xiangmu=get(handles.xiangmu_popupmenu,'Value');
danweishu=str2num(get(handles.danweishu_edit,'String'));
jingdu=str2num(get(handles.jingdu_edit,'String'));
f4fc72cbbdb4e3bd3b55043b9cffd15a.png
https://www.zhihu.com/video/1113395446906707968
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值