全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
2789 2
2012-05-17
renkou.xls
大小:(22.5 KB)

 马上下载

最近在写毕业论文,用的matlab7.0软件,模型是bp神经网络预测辽宁十二五期间能源消费量,3个输入,1个隐含层含5个神经元,1个输出,我想先用1978-2007年的数据做训练集,2008-2010年的数据做检验。以下是我的程序代码:

clc;clear all;

p =xlsread('D:\matlab\work\renkou', 'sheet2', 'J2:L31'); %这是1978-2007年的输入数据
t = xlsread('D:\matlab\work\renkou', 'sheet2', 'B2:B31');%这是1978-2007年的输出数据

p = p'; t = t';
%利用premnmx函数对数据进行归一化
[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); % 对于输入矩阵p和输出矩阵t进行归一化处理
dx=[-1,1];                   %归一化处理后最小值为-1,最大值为1
%BP
网络训练

net=newff(minmax(pn),[5,1],{'tansig','tansig','purelin'},'trainlm');

nParam.show=50;               %50次显示一次结果
net.trainParam.Lr=0.05;                 %学习速度为0.05
net.trainParam.epochs=1000;           %
最大训练1000

net.trainParam.goal=0.0001;     %均方误差
[net,tr]=train(net,pn,tn);                   %开始训练,其中pn,tn分别为输入输出样本
%利用原始数据对BP网络仿真
an=sim(net,pn);           %用训练好的模型进行仿真
a=postmnmx(an,mint,maxt); % 把仿真得到的数据还原为原始的数量级;

p_test= xlsread('D:\matlab\work\renkou', 'sheet2', 'J32:L34'); %这是2008-2010年的数据,检验数据

p_test = p_test'
pn_test=tramnmx(p_test,minp,maxp);

%% Simulation

tn_test=sim(net,pn_test);

%% Normalization-Inverse

t_test=postmnmx(tn_test,mint,maxt)

可是预测出来2008-2010年的数据不对,这是不是因为mint和maxt的关系啊?预测出来的数据不能超过maxt?请各位大侠帮帮忙,最近初学神经网络,不知道该怎么处理这个问题。感激不尽


附件列表

renkou.xls

大小:21.5 KB

 马上下载

二维码

扫码加我 拉你入群

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

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

全部回复
2012-5-17 23:15:25
自己顶一下,希望各位大侠出手相助
二维码

扫码加我 拉你入群

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

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

2012-5-18 08:53:10
3个输入是影响能源需求的因素:gdp、居民消费水平、产业比重,1个输出是能源消费总量。各位大侠帮帮忙,感激不尽
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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