资源描述:
《基于BP神经网络的温州人口预测模型模板.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2014基于BP神经网络的温州人口预测模型郑凯2015.12目录1BP神经网络模型简介及选用原因2基于BP神经网络的温州市人口预测模型的建立人口预测数据结果分析3Matlab程序4一、BP神经网络模型简介及选用原因BP网络常包含输入层、隐含层和输出层BP算法的学习方法是:首先设定网络的初始状态,对样本输入作前向计算,然后对网络理论输出值与实际值间误差进行判别,如果该误差小于给定值,学习结束;一、BP神经网络模型简介及选用原因人口真实模型往往是非线性的,如果在一些简单的模型假设下就进行数据模拟,常常不能达到较好的模拟效果。神经网络为寻找这种规律提供了有效的
2、方法,它具有高度的自学习能力,能以任意精度逼近任意非线性函数,因此比较适合于一些复杂问题的建模。在此运用BP神经网络模型对温州市人口进行预测。二、基于BP神经网络的温州市人口预测模型的建立BP神经网络模型建立步骤1)样本采集、归一化、随机选择训练样本和测试样本2)BP网络构建/训练(newff/train)3)性能评价:利用测试样本计算预测误差,用于评价网络的泛化能力二、基于BP神经网络的温州市人口预测模型的建立1)数据采集二、基于BP神经网络的温州市人口预测模型的建立2)数据预处理3)样本的划分我们可以通过训练一个BP网络来达到预测目的:用前三年的人数
3、预测下一年的人数,也就是用1978-1980年的人数预测第1981年的人数。对经过预处理的数据序列P,根据确定的网络结构划分训练样本和检验样本。P1=[78年人数,79年人数,80年人数]t1=81年人数P2=[79年人数,80年人数,81年人数]t2=82年人数……….P33=[10年人数,11年人数,12年人数]t33=13年人数P=[P1,P2,P3...,P33]T=[t1,t2,...,t33]二、基于BP神经网络的温州市人口预测模型的建立二、基于BP神经网络的温州市人口预测模型的建立3)样本的划分并同时选择1978~2010年的数据作为训练样
4、本集,2011~2013年的数据作为检验样本集。二、基于BP神经网络的温州市人口预测模型的建立4)程序实现%产生训练集,从总样本中选取P_train(3*33矩阵),T_train(1*33矩阵);%创建网络net=newff(minmax(P_train),[3,1],{'tansig','purelin'},'traingdx');%训练参数设置net.performFcn='mse';%表示采用均方误差来评价网络性能指数net.trainParam.show=20;%表示训练20次显示一次结果net.trainParam.goal=1e-5;%表示
5、网络均方误差的目标值net.trainParam.epochs=2000;%表示允许的最大训练周期数%训练网络net=train(net,P_train,T_tain);二、基于BP神经网络的温州市人口预测模型的建立4)程序实现二、基于BP神经网络的温州市人口预测模型的建立4)程序实现二、基于BP神经网络的温州市人口预测模型的建立4)程序实现%仿真测试T_sim=sim(net,P_test);%性能评价,计算测试样本的相对误差Erro=abs(T_sim-T_test)./T_test;最后,利用检验样本可以检验训练得到的网络模型预测的效果。经过检验,
6、精度达到要求的网络模型即可用于对新的数据进行预测,如果精度达不到要求,就要重新建模并训练。三、人口预测数据结果分析检验结果的误差较小,可以达到预测效果。可将训练好的网络用于预测。并且预测可得2014年至2017年人口分别为811.57,814.26,816.34,817.48万人三、人口预测数据结果分析四、Matlab程序clearallX=[1978:1:2017];Y=[1:1:40];Y(1)=0.561268*1e7;Y(2)=0.57163*1e7;Y(3)=0.58142*1e7;Y(4)=0.59283*1e7;Y(5)=0.60213*1
7、e7;Y(6)=0.61146*1e7;Y(7)=0.62052*1e7;Y(8)=0.62919*1e7;Y(9)=0.63621*1e7;Y(10)=0.64399*1e7;Y(11)=0.65297*1e7;Y(12)=0.65974*1e7;Y(13)=0.66698*1e7;Y(14)=0.67258*1e7;Y(15)=0.67899*1e7;Y(16)=0.68557*1e7;Y(17)=0.6924*1e7;Y(18)=0.69789*1e7;Y(19)=0.70437*1e7;Y(20)=0.70835*1e7;Y(21)=0.7180
8、4*1e7;Y(22)=0.72162*1e7;Y(23)=0.73632*1e