用BP神经网络预测虫害

用BP神经网络预测虫害

首先构造3年中,5月到12月,平均气温,最低气温,日照时间和降雨量的数据集,作为输入

%构建训练样本中的输入向量P
p1=[-0.0909 0.4825 0.9580 0.6643 0.0350 -0.6224;
    -0.1408 0.3844 0.9718 0.7183 0.0423 -0.6620;
    -0.2500 0.1250 0.9688 0.5000 0.0000 -0.0625;
    -0.2984 0.3037 -0.7801 0.0419 -0.3665 -0.8796];
p2=[-0.2727 -0.909 0.9580 0.8601 0.0909 -0.9860;
    -0.7324 0.0000 1.0000 0.9296 0.0141 -1.0000;
    0.5625 0.8125 0.6875 0.2812 0.1563 -0.5625;
    -0.7277 -0.6073 0.0733 -0.3979 -0.4660 -0.4241];
p3=[0.1189 0.3706 0.6923 0.6643 -0.0350 -0.4266;
    -0.1127 0.3521 0.7324 0.7324 0.0423 -0.5070;
    0.6250 0.0313 -0.3125 -0.0625 -0.5313 -0.125;
    -0.6021 -0.6073 0.2670 0.1361 -0.8482 -0.8586];
P=[p1 p2 p3];

接着构造输出,即虫害程度的数据集

%构建训练样本中的目标向量t
t1=[0 0 1 1 0 0
    0 0 0 0 0 0;
    0 0 0 0 0 0;
    1 1 0 0 1 1];
t2=[0 0 1 1 1 0;
    0 1 0 0 0 0;
    0 0 0 0 0 0;
    1 0 0 0 0 1];
t3=[0 0 0 1 1 0;
    0 0 0 0 0 1;
    0 0 1 0 0 0;
    1 1 0 0 0 0];
t=[t1 t2 t3];

在这里插入图片描述

创建BP神经网络

%创建一个BP网络,隐含层有9个神经元,传递函数为tansig
%中间层有4个神经元,传递函数为logsig,训练函数为trainlm
net=newff(minmax(P),[9,4],{'tansig','logsig'},'trainlm');

设置网络的训练参数

%训练步数为50
%目标误差为0.01
net.trainParam.epochs=50;
net.trainParam.goal=0.01;
net=train(net,P,t);

构造测试集合

%预测2003年的虫情
P_test=[0.0490 0.2587 0.7203 0.9301 0.3287 -0.6084;
        0.0000 0.3662 0.8028 0.9014 0.3239 -0.5211;
        -0.0937 -0.5313 -0.1875 0.9688 0.2813 -0.2813;
        -0.0995 1.0000 0.4346 -0.8691 -0.6702 -0.4346];

根据这个测试集合来预测虫害风险

y=sim(net,P_test)

得到y的输出,图示为6个月虫害的不同等级分布

在这里插入图片描述
训练过程用了9轮就达到了预定精度

在这里插入图片描述

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值