首页 > 编程知识 正文

matlab神经网络预测模型例题(bp神经网络模型预测)

时间:2023-05-06 17:33:54 阅读:79024 作者:1943

数据来源

本文数据来源于第十六届“五一数学建模竞赛”C题数据,原题《科创板拟上市企业估值》,原题要求如下: 截至2019年4月27日,上海证券交易所已有93家企业申报上市科技研发板,并公布了93家企业2016-2018年的基本面数据。 参考美国纳斯达克市场估值量化模型、中国a股市场流动性指标,预测中国首家科技开创板企业上市后的估值水平。

BP神经网络简介

BP神经网络是一种神经网络学习算法,由输入层、中间层和输出层组成,中间层可以多层扩展。 相邻层间的各神经元完全连接,但各层各神经元之间没有连接,网络学习为有教师向量,当一对学习模式提供网络时,各神经元得到网络的输入响应,生成连接权重值之后,向减小想要输出的输出和实际输出之间的误差的方向,从输出层经过各中间层逐层修正各连接权,返回输入层。 该过程交替重复,直到网络的全局误差趋向给定的最小值。 也就是说,在完成学习过程的3层BP神经网络结构中如图所示。

BP神经网络的最大优点是具有非常强的非线性映射能力,表现为以下四个方面:

函数逼近使用输入向量和对应的输出向量训练网络,并逼近某一函数。 模式识别是一个挂起的输出向量,与输入向量相关联。 分类是对输入向量定义的适当方式进行分类。 数据压缩减少输出向量的维数以进行传输或存储。 理论上,对于一个3层和3层以上的BP网络,如果隐层神经元的数量足够多,则该网络可以以任意精度近似为非线性函数。

BP神经网络兼具外界刺激和联想记忆输入信息的能力,该能力在图像复原、语言处理、模式识别等方面具有重要的应用。 BP神经网络对外部输入样本具有较强的识别和分类能力,解决了神经网络发展史上非线性分类的难题。 BP神经网络还具有优化计算能力,本质上是非线性优化问题。 在已知的约束条件下,可以搜索参数的组合以最小化由该组合确定的目标函数。

本文的神经网络预测流程如下。

案例实战

首先以2009-2018年营业收入、归母净利润、净资产收益率、年成交量、年均换手率、年交易额共6个指标为输入变量,以2009-2018年国别评价水平为输出变量训练神经网络,2019年各项指标预期

此问题的神经网络代码:

导入%%数据

x=[ 120728.497311213.315694062.38193245714976.327.3078341508491.1979144172.590615264.90045-10.68503406069 . 835699.428828315230163128.634.83853076721050.0948190306.583917619.307926.40733865198308120.755.6433563472222 21316.86829-0.31765783625644604.980.460687681106891.344234988.980 31076378.604248652.985822839.7377350.82929 666830934.2671812.406712.40671018375 8730932.482996.067514146251028619.481.839037281645955.361;

y=[ 0.764360351.2509757130.7470697282.2511290293.5709058275.2285483113.29616731810.139301065.49905

x=x ';

y=y ';

[pn,minp,maxp,tn,mint,maxt]=premnmx(x,y ); 对%输入矩阵x和输出矩阵y进行归一化处理

dx=[-1,1; - 1,1; - 1,1; - 1,1; - 1,1; - 1,1 ); %对应于输入数据集数量

net=newff(dx,[ 6,10,1 ],{'tansig ',' tansig ',' purelin'},' traingdx;

net.trainParam.show=1000; 00轮回表示一次结果

net.trainParam.Lr=0.05; %学习速度为0.05

net.trainParam.epochs=50000; %最大训练轮回为50000次

net.train param.goal=0.65 * 10 ^ (-3; %均方误差

net=train(net,pn,tn ); 开始%训练,其中pn、tn分别为输入输出样本

x1=[ 331041.565533260.53948176.7517535280991819.683.24674735-55138.03985 ];

x1=x1 '; y1=[6.431211609];

y1=y1 ';

y1=y1 ';

P1=tramnmx(x,minp,maxp );

anewn=sim(net,p1 );

anew=postmnmx(anewn,mint,maxt );

P2=tramnmx(x1,minp,maxp );

anewN1=sim(net,p2 );

anew1=postmnmx(anewN1,mint,maxt ) )。

插图

t=[2009:2018];

plot(t,y )、(r-o )、t,anew,(b- () )

legend (“训练结果”、“原始结果”);

xlabel ('时间);

美国评级水平;

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。