快捷搜索:  汽车  科技

全球主要指数估值对比:基于BP神经网络科创板企业估值水平预测

全球主要指数估值对比:基于BP神经网络科创板企业估值水平预测附该题神经网络代码:BP神经网络同时具有对外界刺激和输入信息进行联想记忆能力,这种能力使其在图像复原、语言处理、模式识别等方面具有重要应用。BP神经网络对外界输入样本有很强的识别与分类能力,解决了神经网络发展史上的非线性分类难题。BP神经网络还具有优化计算能力 其本质上是一个非线性优化问题它可以在已知约束条件下 寻找参数组合 使该组合确定的目标函数达到最小。本文的神经网络预测流程如下所示:首先将2009-2018年的营业收入、归母净利润、净资产收益率、年成交量、年平均换手率、年成交额共6项指标作为输入变量,2009-2018年国估值水平作为输出变量对神经网络进行训练,然后将2019年各项指标的预测值作为输入变量可得到2019年估值水平的预测值,美国2019估值水平的预测值为5.5199,中国2019估值水平的预测值为5.2469,训练出来的神经网络图像如下所示。

数据来源

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

BP神经网络简介

BP神经网络是一种神经网络学习算法 由输入层、中间层和输出层组成 中间层可扩展为多层。相邻层之间各神经元进行全连接,而每层各神经元之间无连接,网络按有教师向量的方式进行学习 当一对学习模式提供网络后 各神经元获得网络的输入响应产生连接权值。然后按减小希望输出与实际输出误差的方向,从输出层经各中间层逐层修正各连接权 回到输入层。此过程反复交替进行,直至网络的全局误差趋向给定的极小值 即完成学习过程三层BP神经网络结构下如图所示。

全球主要指数估值对比:基于BP神经网络科创板企业估值水平预测(1)

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

  • 函数逼近用输入向量和相应的输出向量训练一个网络以逼近某个函数。
  • 模式识别用待定的输出向量将它与输入向量联系起来。
  • 分类把输入向量所定义的合适方式进行分类。
  • 数据压缩减少输出向量维数以便传输或存储。

理论上对于一个3层和3层以上的BP网络,只要隐层神经元数目足够多,该网络就能以任意精度逼近一个非线性函数。

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

本文的神经网络预测流程如下所示:

全球主要指数估值对比:基于BP神经网络科创板企业估值水平预测(2)

案例实战

首先将2009-2018年的营业收入、归母净利润、净资产收益率、年成交量、年平均换手率、年成交额共6项指标作为输入变量,2009-2018年国估值水平作为输出变量对神经网络进行训练,然后将2019年各项指标的预测值作为输入变量可得到2019年估值水平的预测值,美国2019估值水平的预测值为5.5199,中国2019估值水平的预测值为5.2469,训练出来的神经网络图像如下所示。

全球主要指数估值对比:基于BP神经网络科创板企业估值水平预测(3)

全球主要指数估值对比:基于BP神经网络科创板企业估值水平预测(4)

附该题神经网络代码:

%% 导入数据 x=[120728.497311213.315694062.381933245714976.327.30783341508491.1979144172.590615264.90045-10.68503406244004366.885.1555084685388.0204178478.447717123.835699.428828315230163128.634.83853076721050.0948190306.583917619.307926.407338655198308120.755.64335634724832.3937204091.388728051.4265825.50445558205708470.262.02682612788015.785220694.597721316.86829-0.317657836225644604.980.460687681106891.344234988.500821563.64066-1.530533557219105201.370.40403331076378.604248652.985822839.7377350.8292175229151345.592.417054271018375.803280164.066830934.2671812.40673671230771137.977.569726711197640.008293721.385730932.482996.067514146251028619.481.839037281645955.361]; y=[0.7643660351.2509757130.7470697282.2511290293.5709058275.2285483113.49526642 3.29616731810.139301065.096094661];%替换 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.trainParam.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) figure t=[2009:2018]; plot(t y' 'r-o' t anew 'b-- ') legend('训练结果' '原始结果'); xlabel('时间'); ylabel('美国估值水平');

猜您喜欢: