股票价格预测神器:BP神经网络预测的matlab模拟代码;

自动优选神经元个数;

自动迭代15000次,精度0.001;

代码运行效果图:

原始代码自此处开始:

% 本代码由重庆科技学院范巧副教授于2018年7月22日12:00撰写;

% 本代码版权保护,不得用于科研或学习之外的其他用途;

% 小范学数量经济学之四:BP神经网络预测的MATLAB模拟代码;

% 参考文献:杨德平,刘喜华.经济预测与决策技术及MATLAB实现(第2版)[M].北京:机械工业出版社,2016:239-252。

% 录入数据,第1列为开盘价,第2列为最高价,第3列为最低价,第4列为收盘价(依据实际分析情况修改);

X = randn(500,4);

% 以第2行至第m行第1列数据为输出目标,以第1行至第m-1行所有列数据为输入数据序列;

% 以历史开盘价、收盘价、最高价、最低价为依据,来预测开盘价;

[m,n] = size(X);

ts = X(2:m,1);

tsx = X(1:m-1,:);

TSX = tsx';

% 以premnmx函数对TS、TSX数据序列进行无量纲归一化处理;

[Pn1,minp1,maxp1] = premnmx(TS);

[Pn2,minp2,maxp2] = premnmx(TSX);

s0 = 2*n+3;

s1 = n:s0;%神经元取值个数的范围;

s2 = length(s1);

% 确定最优神经元的个数;

for i = 1:s2;

rand('state',0);

PR0 = minmax(Pn2);

% 创建神经网络系统,并定义参数;

net0 = newff(PR0,[s1(i),1],{'tansig','purelin'},'traingdx','learngdm','mse');

% newff指建立一个前馈BP神经网络;net = newff(PR,SN,TF,BTF,BLF,PF)

% PR为输入元素的最大值和最小值组成的P*2为矩阵;

% SN为网络隐层和输出层的神经元个数;

% TF为网络隐层和输出层的传递函数,常见的有tansig(默认),purelin,logsig等形式;

% BTF为训练函数,traingdm为普通训练函数,需设定学习速率和动量系数;trainlm为快速训练函数。

% BLF为网络权重学习函数,默认为learngdm;

% PF为网络性能函数,默认为mse,表示网络输出和目标输出之间的均方误差。

net0.trainparam.lr = 0.1;       % 学习速率,权重阈值的调整幅度;

net0.trainparam.epochs = 500;  % 训练次数;

net0.trainparam.goal = 0.0001;  % 误差精度;

% 训练神经网络;

net0 = train(net0,Pn2,Pn1);

net0 = train(net0,Pn2(:,1:m-4),Pn1(1:m-4));

% [z1,z2] = train(net,X,Y), 其中X为输入样本矢量集,Y为对应的目标样本矢量集

% net为训练之前的神经网络对象;z1为训练之后的神经网络对象;z2为训练过程的步数信息和误差信息存储对象;

% 仿真预测;

Test0 = Pn2(:,1:m-4);

Y = sim(net0,Test0);

% [k1,k2,k3,k4,k5] = sim(net,X1,X01,X02,X2),BP神经网络的仿真;

% k1为网络输出,k2为训练终止时的输入延迟状态,k3为训练终止时的层延迟状态,k4为输出矢量和目标矢量之间的误差,k5为网络性能值;

% net为神经网络对象,X1为神经网络的输入对象,X01为输入延迟的初始状态,X02为层延迟的初始状态,X2为目标矢量;

% 确定预测误差大小;

Test1 = Pn2(1:m-4);

resids0 = Test1-Y;

resids1(i) = norm(resids0);

s3 = find(resids1 == min(resids1));

Optimal_num = s3+n-1;

rand('state',0);

PR1 = [-1*ones(n,1),ones(n,1)];

% 创建BP神经网络,并设定参数;

net = newff(PR1,[Optimal_num,1],{'tansig','purelin'},'traingdx','learngdm','mse');

net.trainparam.show = 50;       % 训练状态的显示幅度,默认25;

net.trainparam.lr = 0.05;       % 学习速率,权重阈值的调整幅度;

net.trainparam.mc = 0.95;       % 权重阈值改变的重复度;

net.trainparam.epochs = 15000;  % 训练次数;

net.trainparam.goal = 0.0001;   % 误差精度;

net = init(net);

% 训练网络;

net = train(net,Pn2(:,1:m-4),Pn1(1:m-4));

Forecast0 = Pn2(:,m-Optimal_num-1:m-1);

Forecast1 = sim(net,Forecast0);

% 利用postmnmx函数进行反归一化处理;

Forecast2 = postmnmx(Forecast1,minp1,maxp1);

% 确定预测误差;

Real0 = X(m-Optimal_num:m,1);

resids2 = (Real0-Forecast2)./Real0;

resids3 = norm(resids2);

% 画出开盘价预测图;

T = m-Optimal_num:m;

plot(T,Real0,'-+',T,Forecast2,'O');

xlabel('交易日天数');

ylabel('开盘价仿真预测值');

bp学习函数matlab代码,小范学数量经济学之四:BP神经网络预测的MATLAB模拟代码相关推荐

  1. BP神经网络预测回归MATLAB代码(代码完整可直接用,注释详细,可供学习)

    BP神经网络预测回归MATLAB代码(代码完整可直接用,注释详细,可供学习) 一.前言 二.代码部分 2.1 初始化 2.2 读取数据 2.3 设置训练集和测试集 2.4 数据归一化 2.5 求解最佳 ...

  2. 2023年中央财经大学数量经济学考博必看上岸前辈复习经验分享

    一.收集信息 考博与考研最大的不同是博士可以同时报考不同学校的不同专业,因此,在开始复习之前最重要的就是获取到有效的信息,确定自己的目标院校.目标专业和目标导师,以防复习时会"走弯路&quo ...

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

    1 简介 BP神经网络模型是目前应用最为广泛神经网络之一.它的本质是通过对历史数据的学习找出数据变化趋势之间的非线性关系,并通过输出量与预期值之间的误差不断调整网络中各个单元的权重,使整个网络的误差最 ...

  4. 【优化预测】粒子群算法优化BP神经网络预测温度matlab源码

    一.粒子群算法及RBF简介 1 粒子群算法简介 1.1 引言 自然界中的鸟群和鱼群的群体行为一直是科学家的研究兴趣所在.生物学家Craig Reynolds在1987年提出了一个非常有影响的鸟群聚集模 ...

  5. 聊聊代码质量 - 《学得会,抄得走的提升前端代码质量方法》前言

    点击一键订阅<云荐大咖>专栏,获取官方推荐精品内容,学技术不迷路! <聊聊代码质量> 代码质量对公司和个人都很重要.但提升代码的方式有很多,在时间和资源有限的情况下,我们该做哪 ...

  6. matlab神经网络预测数据,matlab神经网络工具箱

    什么是matlab神经网络 Matlab语言是MathWorks公司推出的一套高性能计算机编程语言,集数学计算.图形显示.语言设计于一体,其强大的扩展功能为用户提供了广阔的应用空问. 它附带有30多个 ...

  7. rls算法matlab实现,第5章基于RLS算法的数据预测与MATLAB实现MATLAB实现.PDF

    第5章基于RLS算法的数据预测与MATLAB实现MATLAB实现 第 5章 基于 RLS算法的数据预测与 第5章 基于RLS算法的数据预测与MATLAB实现 MATLAB实现 RLS 1795 递归最 ...

  8. python四瓣花代码_小蛇学python(14)K-means预测花朵种类

    承接上一篇有关如何处理数据的文章,这一篇,我们来一次实战,让大家感受一下这个过程. Iris数据集是一个比较特别的数据集,早在1936年Ronald Fisher就将此数据集用于了数据挖掘实验.Fis ...

  9. matlab什么专业要学,【读书1】【2017】MATLAB与深度学习——什么是机器学习(1)

    例如,如果我们正在开发一个自动过滤系统来删除垃圾邮件,那么垃圾邮件过滤器就是我们所讨论的模型. For instance, if we are developing anauto-filtering ...

最新文章

  1. sql必知必会(第四版) 学习笔记二 视图
  2. 公众号知道我浏览他吗_微信公众平台文章能看到访客吗?
  3. Spring Boot——[Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported]解决方案
  4. 千亿级市场赛道,阿里云视频云拿下 “三连冠”
  5. 如何在Java中转义JSON字符串-Eclipse IDE技巧
  6. hibernate自带的注解和jpa注解的冠希
  7. 稳扎稳打Silverlight(30) - 2.0Tip/Trick之Silverlight.js, Silverlight.supportedUserAgent.js
  8. 建班子:企业需要建立什么样的班子?
  9. 阿里HR:你会使用selenium爬取工具? 某人:那不是随随便便吗,不止会用 还会爬取掘金小册呢!
  10. 行列式 (背诵内容)
  11. iOS16Beta如何降级iOS15不丢失数据和出现白苹果?
  12. Python | 用Python画个美队盾牌送给你
  13. 分享一些实用的手机应用
  14. 主存、辅存、内存、外存、存储器:名词解释
  15. onsubmit和submit()详解
  16. “百度首页人物”首期人物:《士兵突击》许三多
  17. 如何从公网访问本地的Zeus?
  18. 基于Docker容器的DevOps应用方案
  19. 浏览器的浏览模式——兼容模式
  20. 《白帽子讲WEB安全》学习笔记之第9章 认证与会话管理

热门文章

  1. LeetCode知识点总结 - 1974
  2. android私密照片恢复,安卓手机照片被误删?这样设置一下,立马就能恢复
  3. android 与 蓝牙模块 hc06通信app 开发要点
  4. linux 下安装ATI 显卡驱动
  5. 李嘉诚申报减持2221.6万股南航套现2.9亿
  6. wireshark 之 kafka协议分析1
  7. linux操作系统期末考试大题,《Linux操作系统》Linux-期末考试试题-含答案.doc
  8. liunx动态获取ip解决花生壳动态域名失效问题
  9. Spring揭秘 读书笔记 三 bean的scope与FactoryBean
  10. twitter mysql_MySQL在Twitter的应用以及Mysos介绍