基于神经网络的马尾松毛虫精细化预报Matlab建模试验(共32页).doc
《基于神经网络的马尾松毛虫精细化预报Matlab建模试验(共32页).doc》由会员分享,可在线阅读,更多相关《基于神经网络的马尾松毛虫精细化预报Matlab建模试验(共32页).doc(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上基于神经网络的马尾松毛虫精细化预报Matlab建模试验张国庆(安徽省潜山县林业局)1.数据来源马尾松毛虫发生量、发生期数据来源于潜山县监测数据,气象数据来源于国家气候中心。2.数据预处理为了体现马尾松毛虫发生发展时间上的完整性,在数据处理时,将越冬代数据与上一年第二代数据合并,这样,就在时间上保持了一个马尾松毛虫世代的完整性,更便于建模和预测。(1)气象数据处理根据松毛虫综合管理、中国松毛虫等学术资料以及近年来有关马尾松毛虫监测预报学术论文,初步选择与松毛虫发生量、发生期有一定相关性气象因子,包括卵期极低气温,卵期平均气温,卵期积温(日度),卵期降雨量,第1、2龄极低
2、气温,第1、2龄平均气温,第1、2龄积温(日度),第12龄降雨量,幼虫期极低气温,幼虫期平均气温,幼虫期积温(日度),幼虫期降雨量,世代极低气温,世代平均气温,世代积温(日度),世代降雨量共16个变量。将来自于国家气候中心的气象原始数据,按年度分世代转换成上述16个变量数据系列。(2)发生量数据处理为了在建模时分析发生强度,在对潜山县19832014年原始监测数据预处理时,按照“轻”、“中”、“重”3个强度等级,分类按世代逐年汇总。(3)发生期数据处理首先对潜山县19832014年原始发生期监测数据按世代逐年汇总,然后日期数据转换成日历天,使之数量化,以便于建模分析。3.因子变量选择通过相关性
3、分析和建模试验比较,第一代发生量因子变量选择第1、2龄极低气温,卵期极低气温,上一代防治效果,上一代防治面积;第二代发生量因子变量选择第1、2龄极低气温,卵期极低气温,上一代防治效果,上一代防治面积,第1、2龄降雨量,卵期降雨量;第一代幼虫高峰期因子变量选择第1、2龄平均气温,第1、2龄积温(日度),第1、2龄极低气温,卵期极低气温;第二代幼虫高峰期因子变量选择成虫始见期,卵期平均气温,卵期积温(日度),第1、2龄极低气温。将第一代发生量变量命名为s1y,因变量命名为s1x;第二代发生量变量命名为s2y,因变量命名为s2x;第一代幼虫高峰期变量命名为t1y,因变量命名为t1x;第二代幼虫高峰期
4、变量命名为t2y,因变量命名为t2x。4.第一代发生量建模试验4.1程序代码程序代码(Simple Script)为:% Solve an Input-Output Fitting problem with a Neural Network% Script generated by Neural Fitting app% Created Wed Oct 28 19:28:48 CST 2015% This script assumes these variables are defined:% s1x - input data.% s1y - target data. x = s1x;t =
5、s1y; % Choose a Training Function% For a list of all training functions type: help nntrain% trainlm is usually fastest.% trainbr takes longer but may be better for challenging problems.% trainscg uses less memory. NFTOOL falls back to this in low memory situations.trainFcn = trainlm; % Levenberg-Mar
6、quardt % Create a Fitting NetworkhiddenLayerSize = 10;net = fitnet(hiddenLayerSize,trainFcn); % Setup Division of Data for Training, Validation, Testingnet.divideParam.trainRatio = 90/100;net.divideParam.valRatio = 5/100;net.divideParam.testRatio = 5/100; % Train the Networknet,tr = train(net,x,t);
7、% Test the Networky = net(x);e = gsubtract(t,y);performance = perform(net,t,y) % View the Networkview(net) % Plots% Uncomment these lines to enable various plots.%figure, plotperform(tr)%figure, plottrainstate(tr)%figure, plotfit(net,x,t)%figure, plotregression(t,y)%figure, ploterrhist(e)程序代码(Advanc
8、ed Script)为:% Solve an Input-Output Fitting problem with a Neural Network% Script generated by Neural Fitting app% Created Wed Oct 28 19:29:03 CST 2015% This script assumes these variables are defined:% s1x - input data.% s1y - target data. x = s1x;t = s1y; % Choose a Training Function% For a list o
9、f all training functions type: help nntrain% trainlm is usually fastest.% trainbr takes longer but may be better for challenging problems.% trainscg uses less memory. NFTOOL falls back to this in low memory situations.trainFcn = trainlm; % Levenberg-Marquardt % Create a Fitting NetworkhiddenLayerSiz
10、e = 10;net = fitnet(hiddenLayerSize,trainFcn); % Choose Input and Output Pre/Post-Processing Functions% For a list of all processing functions type: help nnprocessnet.input.processFcns = removeconstantrows,mapminmax;net.output.processFcns = removeconstantrows,mapminmax; % Setup Division of Data for
11、Training, Validation, Testing% For a list of all data division functions type: help nndividenet.divideFcn = dividerand; % Divide data randomlynet.divideMode = sample; % Divide up every samplenet.divideParam.trainRatio = 90/100;net.divideParam.valRatio = 5/100;net.divideParam.testRatio = 5/100; % Cho
12、ose a Performance Function% For a list of all performance functions type: help nnperformancenet.performFcn = mse; % Mean squared error % Choose Plot Functions% For a list of all plot functions type: help nnplotnet.plotFcns = plotperform,plottrainstate,ploterrhist, . plotregression, plotfit; % Train
13、the Networknet,tr = train(net,x,t); % Test the Networky = net(x);e = gsubtract(t,y);performance = perform(net,t,y) % Recalculate Training, Validation and Test PerformancetrainTargets = t .* tr.trainMask1;valTargets = t .* tr.valMask1;testTargets = t .* tr.testMask1;trainPerformance = perform(net,tra
14、inTargets,y)valPerformance = perform(net,valTargets,y)testPerformance = perform(net,testTargets,y) % View the Networkview(net) % Plots% Uncomment these lines to enable various plots.%figure, plotperform(tr)%figure, plottrainstate(tr)%figure, plotfit(net,x,t)%figure, plotregression(t,y)%figure, plote
15、rrhist(e) % Deployment% Change the (false) values to (true) to enable the following code blocks.if (false) % Generate MATLAB function for neural network for application deployment % in MATLAB scripts or with MATLAB Compiler and Builder tools, or simply % to examine the calculations your trained neur
16、al network performs. genFunction(net,myNeuralNetworkFunction); y = myNeuralNetworkFunction(x);endif (false) % Generate a matrix-only MATLAB function for neural network code % generation with MATLAB Coder tools. genFunction(net,myNeuralNetworkFunction,MatrixOnly,yes); y = myNeuralNetworkFunction(x);e
17、ndif (false) % Generate a Simulink diagram for simulation or deployment with. % Simulink Coder tools. gensim(net);end4.2网络训练过程网络训练为:图1 第一代发生量网络训练过程4.3训练结果训练结果为:图2 第一代发生量网络训练结果训练样本、验证样本、测试样本的R值分别为0.、-1和1。误差直方图为:图3 第一代发生量网络训练结果误差直方图训练样本、验证样本、测试样本、所有数据回归图为:图4 第一代发生量网络训练结果回归图验证样本和测试样本R值均为1。5.第二代发生量建模试验5
18、.1程序代码程序代码(Simple Script)为:% Solve an Input-Output Fitting problem with a Neural Network% Script generated by Neural Fitting app% Created Wed Oct 28 20:04:18 CST 2015% This script assumes these variables are defined:% s2x - input data.% s2y - target data. x = s2x;t = s2y; % Choose a Training Functio
19、n% For a list of all training functions type: help nntrain% trainlm is usually fastest.% trainbr takes longer but may be better for challenging problems.% trainscg uses less memory. NFTOOL falls back to this in low memory situations.trainFcn = trainlm; % Levenberg-Marquardt % Create a Fitting Networ
20、khiddenLayerSize = 10;net = fitnet(hiddenLayerSize,trainFcn); % Setup Division of Data for Training, Validation, Testingnet.divideParam.trainRatio = 90/100;net.divideParam.valRatio = 5/100;net.divideParam.testRatio = 5/100; % Train the Networknet,tr = train(net,x,t); % Test the Networky = net(x);e =
21、 gsubtract(t,y);performance = perform(net,t,y) % View the Networkview(net) % Plots% Uncomment these lines to enable various plots.%figure, plotperform(tr)%figure, plottrainstate(tr)%figure, plotfit(net,x,t)%figure, plotregression(t,y)%figure, ploterrhist(e)程序代码(Advanced Script)为:% Solve an Input-Out
22、put Fitting problem with a Neural Network% Script generated by Neural Fitting app% Created Wed Oct 28 20:04:31 CST 2015% This script assumes these variables are defined:% s2x - input data.% s2y - target data. x = s2x;t = s2y; % Choose a Training Function% For a list of all training functions type: h
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 神经网络 马尾松 毛虫 精细 预报 Matlab 建模 试验 32
限制150内