基于Matlab-nntool的BP神经网络在江苏省粮食作物产量预测中的应用
2016-09-05戴澍,潘丽
戴 澍,潘 丽
(炎黄职业技术学院,江苏涟水223400)
基于Matlab-nntool的BP神经网络在江苏省粮食作物产量预测中的应用
戴澍,潘丽
(炎黄职业技术学院,江苏涟水223400)
本文基于BP神经网络理论对2014年江苏省粮食作物产量进行仿真,仿真结果为3510.8万吨。与实际产量相比误差为0.58%,实验结果证明了利用BP神经网络对江苏省粮食作物产量预测是可行的,具有一定的应用价值。
Matlab;BP神经网络;粮食作物
1 BP神经网络
BP神经网络是1986年由Rume1hatt和McCe11and为首的科学家小组提出,它是一种按误差逆传播算法训练的多层前馈网络,是一种具有三层以上(包括三层)的神经网络,包括输入层、隐含层,和输出层。各层之间实现全连接,而各层的神经元之间没有直接连接。
2 BP神经网络在Matlab中的实现
实现BP神经网络在Mat1ab中运行,首先需要对数据进行归一化处理,然后建立神经网络(即newff函数),接着进行网络训练即(ttain函数),并根据训练结果,输入测试数据进行仿真即(sim函数),最后将数据进行反归一化处理。传统模式下,以上过程都需依靠编写程序代码来实现,专业性强,且容易出错。因此在较新版本的mat1ab下设置了Neuta1Netwotk Too1box,可在窗口化的界面进行神经网络的创建、训练与预测,简化了操作,本文即采取此方法进行分析。
3 基于matlab和BP神经网络的江苏省粮
食作物产量预测
3.1指标说明与节点选取
选取影响江苏省粮食作物产量的5个因素作为输入变量,分别为粮食作物播种面积(千公顷)、农村劳动力(万人)、农业机械总动力(万千瓦)、农村用电量(亿千瓦时)、化肥施用量(万吨),输出变量为粮食作物总产量(万吨),数据来源于2003-2015年江苏省统计年鉴。数据如下表所示。相应的,输入节点数和输出节点数分别为5和1,隐含层的节点数则运用以下公式计算:
其中,Z为隐含层节点数,X为输入层节点数,y为输出层节点数,可得隐含层的节点数范围经过多次拟合最后确定隐含层的节点数取10。
3.2数据的归一化处理
BP神经网络的数据归一化处理方法很多,基本原则是把数据按固定规律映射到0到1之间,以便进行统一比较,本文采取的方法如下,其中b为原始数据,a为新数据。
3.3创建与训练网络
取2001-2013年数据作为学习样本,2014年数据为验证数据利用Mat1ab的nntoo1命令,打开工具箱,录入输入、输出数据,创建网络。本文采取三层BP网络,训练函数经过大量试验,最终确定为收敛快、误差小的TRAINLM函数,隐含层激活函数选取TANSIG函数,输出层激活函数选择PURELIN函数。
3.4仿真与结果
利用2014年各输入变量,录入训练好的BP神经网络进行仿真,数据反馈到Netwotk/Date Managet窗口下的Output Date选项中,并将其反归一化,最终结果3510.8。2014年粮食作物总产量为3490.62万吨。误差为0.58%。对于经济指标,一般认为误差在4%以内均算作准确,本次预测值远小于4%,表明利用BP神经网络对江苏省粮食作物产量预测是可行的。
表1 2001-2014年影响江苏省粮食作物产量的主要经济指标
10.3969/j.issn.1673-0194.2016.13.094
F323.8
A
1673-0194(2016)13-0174-01
2016-04-14