GRNN网络的预测----基于广义回归神经网络的货运量预测

GRNN网络的预测----基于广义回归神经网络的货运量预测

程序分为使用交叉验证的GRNN神经网络预测程序(前者)、BP和GRNN效果比较程序(后者)

注意:由于是比较两种网络结果,需要先运行前者后运行后者,以保证两网络使用了相同的数据进行训练。

%清空环境变量
clc;
clear all
close all
nntwarn off;


%载入数据
load data;
% 将数据分成训练和预测两类
p_train=p(1:12,:);
t_train=t(1:12,:);
p_test=p(13,:);
t_test=t(13,:);


%交叉验证
desired_spread=[];
mse_max=10e20;
desired_input=[];
desired_output=[];
result_perfp=[];
indices = crossvalind('Kfold',length(p_train),4);
h=waitbar(0,'正在寻找最优化参数....');
k=1;
for i = 1:4
    perfp=[];
    disp(['以下为第',num2str(i),'次交叉验证结果'])
    test = (indices == i); train = ~test;
    p_cv_train=p_train(train,:);
    t_cv_train=t_train(train,:);
    p_cv_test=p_train(test,:);
    t_cv_test=t_train(test,:);
    p_cv_train=p_cv_train';
    t_cv_train=t_cv_train';
    p_cv_test= p_cv_test';
    t_cv_test= t_cv_test';
    [p_cv_train,minp,maxp,t_cv_train,mint,maxt]=premnmx(p_cv_train,t_cv_train);
    p_cv_test=tramnmx(p_cv_test,minp,maxp);
    for spread=0.1:0.1:2;
        net=newgrnn(p_cv_train,t_cv_train,spread);
        waitbar(k/80,h);
        disp(['当前spread值为', num2str(spread)]);
        test_Out=sim(net,p_cv_test);
        test_Out=postmnmx(test_Out,mint,maxt);
        error=t_cv_test-test_Out;
        disp(['当前网络的mse为',num2str(mse(error))])
        perfp=[perfp mse(error)];
        if mse(error)<mse_max
            mse_max=mse(error);
            desired_spread=spread;
            desired_input=p_cv_train;
            desired_output=t_cv_train;
        end
        k=k+1;
    end
    result_perfp(i,:)=perfp;
end;
close(h)
disp(['最佳spread值为',num2str(desired_spread)])
disp(['此时最佳输入值为'])
desired_input
disp(['此时最佳输出值为'])
desired_output

以下为第1次交叉验证结果
当前spread值为0.1
当前网络的mse为138171223.764
当前spread值为0.2
当前网络的mse为95488909.6232
当前spread值为0.3
当前网络的mse为92890473.6595
当前spread值为0.4
当前网络的mse为94567910.4256
当前spread值为0.5
当前网络的mse为94888604.8502
当前spread值为0.6
当前网络的mse为91009772.6649
当前spread值为0.7
当前网络的mse为86333234.5347
当前spread值为0.8
当前网络的mse为83677398.1829
当前spread值为0.9
当前网络的mse为83909435.1699
当前spread值为1
当前网络的mse为87222555.2139
当前spread值为1.1
当前网络的mse为93647521.1502
当前spread值为1.2
当前网络的mse为103157378.1707
当前spread值为1.3
当前网络的mse为115707622.2116
当前spread值为1.4
当前网络的mse为131266311.8039
当前spread值为1.5
当前网络的mse为149821182.2312
当前spread值为1.6
当前网络的mse为171361859.5977
当前spread值为1.7
当前网络的mse为195851679.1782
当前spread值为1.8
当前网络的mse为223204771.0219
当前spread值为1.9
当前网络的mse为253275515.6472
当前spread值为2
当前网络的mse为285859597.2467
以下为第2次交叉验证结果
当前spread值为0.1
当前网络的mse为80374579.1718
当前spread值为0.2
当前网络的mse为54585059.9447
当前spread值为0.3
当前网络的mse为22473340.5137
当前spread值为0.4
当前网络的mse为9206737.4905
当前spread值为0.5
当前网络的mse为6216176.8681
当前spread值为0.6
当前网络的mse为7541829.2691
当前spread值为0.7
当前网络的mse为11214175.6667
当前spread值为0.8
当前网络的mse为16245824.6899
当前spread值为0.9
当前网络的mse为22679606.0869
当前spread值为1
当前网络的mse为31535965.3356
当前spread值为1.1
当前网络的mse为44217536.1179
当前spread值为1.2
当前网络的mse为61959630.5539
当前spread值为1.3
当前网络的mse为85556536.2277
当前spread值为1.4
当前网络的mse为115313616.0557
当前spread值为1.5
当前网络的mse为151123364.3693
当前spread值为1.6
当前网络的mse为192583291.9482
当前spread值为1.7
当前网络的mse为239105584.6496
当前spread值为1.8
当前网络的mse为289998850.7918
当前spread值为1.9
当前网络的mse为344522824.1853
当前spread值为2
当前网络的mse为401924925.9304
以下为第3次交叉验证结果
当前spread值为0.1
当前网络的mse为107500322.7401
当前spread值为0.2
当前网络的mse为83976035.9524
当前spread值为0.3
当前网络的mse为68319660.4856
当前spread值为0.4
当前网络的mse为65680856.7765
当前spread值为0.5
当前网络的mse为69476080.9664
当前spread值为0.6
当前网络的mse为78744252.1024
当前spread值为0.7
当前网络的mse为92014759.519
当前spread值为0.8
当前网络的mse为108291490.671
当前spread值为0.9
当前网络的mse为127067257.4254
当前spread值为1
当前网络的mse为147968787.423
当前spread值为1.1
当前网络的mse为170633571.2498
当前spread值为1.2
当前网络的mse为194790553.6126
当前spread值为1.3
当前网络的mse为220369018.452
当前spread值为1.4
当前网络的mse为247525298.2652
当前spread值为1.5
当前网络的mse为276584288.2835
当前spread值为1.6
当前网络的mse为307942976.3764
当前spread值为1.7
当前网络的mse为341978431.9675
当前spread值为1.8
当前网络的mse为378979954.4203
当前spread值为1.9
当前网络的mse为419108404.6321
当前spread值为2
当前网络的mse为462379144.5559
以下为第4次交叉验证结果
当前spread值为0.1
当前网络的mse为180083614.208
当前spread值为0.2
当前网络的mse为142703854.1424
当前spread值为0.3
当前网络的mse为127372170.0711
当前spread值为0.4
当前网络的mse为112321404.315
当前spread值为0.5
当前网络的mse为80311875.0869
当前spread值为0.6
当前网络的mse为48413745.2609
当前spread值为0.7
当前网络的mse为30327328.1585
当前spread值为0.8
当前网络的mse为24905112.875
当前spread值为0.9
当前网络的mse为26416339.0172
当前spread值为1
当前网络的mse为30604910.3499
当前spread值为1.1
当前网络的mse为35126266.5126
当前spread值为1.2
当前网络的mse为38865464.8408
当前spread值为1.3
当前网络的mse为41529518.8719
当前spread值为1.4
当前网络的mse为43391998.6892
当前spread值为1.5
当前网络的mse为45028810.7914
当前spread值为1.6
当前网络的mse为47064967.5238
当前spread值为1.7
当前网络的mse为49999219.3227
当前spread值为1.8
当前网络的mse为54129363.1868
当前spread值为1.9
当前网络的mse为59555627.3837
当前spread值为2
当前网络的mse为66224835.5404
最佳spread值为0.5
此时最佳输入值为

desired_input =

   -1.0000   -0.8993   -0.7948   -0.5023   -0.2955   -0.0574    0.1602    0.6652    1.0000
   -0.9998   -1.0000   -0.1291   -0.0072    0.2070    0.3417    0.5137    0.7838    1.0000
   -1.0000   -0.8616   -0.4969   -0.4969    0.1950    0.3333    0.4465    0.6604    1.0000
   -1.0000   -0.5385   -0.0769    0.5385    0.2308    0.3846    0.3846    0.6923    1.0000
   -1.0000   -0.9429   -0.9175   -0.7778   -0.5937   -0.3270   -0.0286    0.5619    1.0000
   -1.0000   -1.0000   -1.0000   -0.5000   -0.3000   -0.2000    0.0000    0.5000    1.0000
    0.0141   -1.0000    0.0187    0.0187    0.2477    0.3682    0.4944    0.7735    1.0000
   -1.0000   -0.9211   -0.8826   -0.9563   -0.7786   -0.6099   -0.3042    0.2843    1.0000

此时最佳输出值为

desired_output =

   -1.0000   -0.9839   -0.9838   -0.7127   -0.4503   -0.2463    0.0126    0.5394    1.0000
   -1.0000   -0.9040   -0.8604   -0.6403   -0.3950   -0.2293   -0.0769    0.4116    1.0000
   -1.0000   -0.8020   -0.8042   -0.5446   -0.2471   -0.0500    0.0416    0.4693    1.0000

GRNN神经网络三项流量预测的误差为9959.185       1777.8231       14498.027

在这里插入图片描述

BP神经网络三项流量预测的误差为6967.20678      11142.5527      4156.17376

完毕

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值