全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
5775 9
2011-06-20
已知八个经济指标的10年数据,如何对这个八个经济指标通过构建BP神经网络模型,对未来二十年的数据进行预测。
怎么编程,希望高手指点?


clear all
close all
aa=xlsread('xmsj.xls');
at=[{'日期:2001至2010'};{'交通量'};{'GDP'};{'人均可支配收入'};{'人口总量'};{'汽车保有量'};......
    {'旅游人均居民消费水平'};{'工业生产总值'};{'农业生产总值'}];
ys='brgmcyk';  %未知?

%%输入数据及目标数据
pd=aa(:,1:10)';
[pn,minp,maxp]=premnmx(pd);
p=pn(1:9,:)';  %p存放训练的输入数据
t=pn(10,:)';   %t存放训练的目标数据
%%%测试数据及目标数据
pdc=aa(:,5:10)'; %pdc表示测试数据
[pnc,minpc,maxpc]=premnmx(pdc); %
ptest=pnc(1:5,:)';%%ptest存放测试集的输入数据
ttest=pnc(6,:)';%%ttest存放测试集的目标数据
%计算训练集的样本个数和输入元素个数
%Q存放样本个数
%R存放输入元素个数
[Q,R]=size(p);
%隐含层神经元个数
H=10;                                            %%隐层神经元数(??)
%创建一个新的前向神经网络
net=newff(minmax(p'),[H,1],{'tansig','purelin'},'trainlm');
% 初始化输入层权值和偏置值
net.IW{1,1}=0.1*rand(H,R);
inputWeights=net.IW{1,1};
net.b{1}=0.1*rand(H,1);
inputbias=net.b{1};
% 初始化网络层权值和偏置值
net.LW{2,1}=0.1*rand(1,H);
layerWeights=net.LW{2,1};
net.b{2}=0.1*rand(1);
layerbias=net.b{2};
%设置网络训练参数
%设置显示间隔
net.trainParam.show=50;
%设置学习速率
net.trainParam.lr=0.05;
%设置动量项
net.trainParam.mc=0.25
%设置训练次数
net.trainParam.epochs=5000;
%设置训练目标值
net.trainParam.goal=1e-5;
%训练BP网络
P=p';
T=t';
[net,tr]=train(net,P,T);
%仿真计算测试集的输出
output=sim(net,ptest');
%将计算结果输出到Excel文件output_ann.xls中
%绘制仿真结果图
figure(1);
plot(output,'ok');
%保持图形不被后续图形绘制操作刷新
hold on;
%绘制阈值上下限
x=linspace(1,6);
y1=0.51;
y2=0.65;
plot(x,y1,'-k',x,y2,'-k');


运行结果:

net =
    Neural Network object:
    architecture:
         numInputs: 1
         numLayers: 2
       biasConnect: [1; 1]
      inputConnect: [1; 0]
      layerConnect: [0 0; 1 0]
     outputConnect: [0 1]
     targetConnect: [0 1]
        numOutputs: 1  (read-only)
        numTargets: 1  (read-only)
    numInputDelays: 0  (read-only)
    numLayerDelays: 0  (read-only)
    subobject structures:
            inputs: {1x1 cell} of inputs
            layers: {2x1 cell} of layers
           outputs: {1x2 cell} containing 1 output
           targets: {1x2 cell} containing 1 target
            biases: {2x1 cell} containing 2 biases
      inputWeights: {2x1 cell} containing 1 input weight
      layerWeights: {2x2 cell} containing 1 layer weight
    functions:
          adaptFcn: 'trains'
           initFcn: 'initlay'
        performFcn: 'mse'
          trainFcn: 'trainlm'
    parameters:
        adaptParam: .passes
         initParam: (none)
      performParam: (none)
        trainParam: .epochs, .goal, .max_fail, .mem_reduc,
                    .min_grad, .mu, .mu_dec, .mu_inc,
                    .mu_max, .show, .time, .lr,
                    .mc
    weight and bias values:
                IW: {2x1 cell} containing 1 input weight matrix
                LW: {2x2 cell} containing 1 layer weight matrix
                 b: {2x1 cell} containing 2 bias vectors
    other:
          userdata: (user stuff)
TRAINLM, Epoch 0/5000, MSE 0.342733/1e-005, Gradient 1.01865/1e-010
TRAINLM, Epoch 5/5000, MSE 4.729e-010/1e-005, Gradient 0.000224833/1e-010
TRAINLM, Performance goal met.


??? Error using ==> network.sim
Inputs are incorrectly sized for network.
Matrix must have 9 rows.
Error in ==> xmyy at 56
output=sim(net,ptest');

怎么解决? 望高手指点,谢谢!
附件列表

xmsj.xls

大小:15 KB

 马上下载

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-6-20 22:12:49
你弄错了啊 神经网络里一行是一个观测
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-6-20 22:22:47
你还在线不?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-6-20 22:55:12
已知八个经济指标的10年数据,如何对这个八个经济指标通过构建BP神经网络模型,对未来二十年的数据进行预测。
怎么编程,希望高手指点?


已知:日期:2001至2010'间的;{'交通量'};{'GDP'};{'人均可支配收入'};{'人口总量'};{'汽车保有量'};......
    {'旅游人均居民消费水平'};{'工业生产总值'};{'农业生产总值'}]; 八个指标的数据,现在如何对未来2011-2021年的数据进行预测

如何编程实现?用BP神经网络模型,望指点,比较急现在,谢谢
本文来自: 人大经济论坛 Matlab及其他计量软件专版 版,详细出处参考:https://bbs.pinggu.org/viewthread ... &from^^uid=773437
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-6-21 07:39:21
要预测的话得先有这些值的未来水平
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-6-21 19:01:42
不知道你模型具体思路。
你的程序的错误,我翻看了下手册,是参数调用错误。所以神经网络在 sim(net,ptest');这里出错了,给你改了一下。可以运行到最后,至于结果是否是你要的,就不敢保证。
复制代码
是参数调用错误问题,你再修改下参数,让参数符合程序的要求。也按照你的设计目的设置新的合适的参数。
我只是修改下,让它可以运行完,我在我的电脑上试过了,修改了那个sim()函数的参数后,可以运行的。你试试。有问题可以找我。
我的Q号:280201722

也和朋友做 MRS DCC GARCH 模型。期待你的加入,潇湘品茗 留。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群