永发信息网

用matlab神经网络进行需水量预测

答案:2  悬赏:70  手机版
解决时间 2021-02-20 04:21
有28年的数据6235 6897 7012 7023 7289 7896 7589 7986 7998 8012 8123 8456 8498 8654 8723 8923 10093 11626 11536 11276 9606 8769 8068 7541 9717 8886 9287 9710
需要用神经网络进行预测,进行拟合对比分析。因为没学过MATLAB对此一窍不通,任务又需要,所以请大侠帮忙,如何实现。

对比是与原来的这些数据对比
最佳答案
clear;
%用bp网络,首先对数据分组:
%假设从当年起后3年的需水量和前十年有关。即第十一,十二,十三年的需水量由第一年到第十年确定,第十二,十三,十四年的需水量由第二年到第十一年确定...
%则:输入量
p=[6235 6897 7012 7023 7289 7896 7589 7986 7998 8012;
6897 7012 7023 7289 7896 7589 7986 7998 8012 8123 ;
7012 7023 7289 7896 7589 7986 7998 8012 8123 8456;
7023 7289 7896 7589 7986 7998 8012 8123 8456 8498;
7289 7896 7589 7986 7998 8012 8123 8456 8498 8654;
7896 7589 7986 7998 8012 8123 8456 8498 8654 8723;
7589 7986 7998 8012 8123 8456 8498 8654 8723 8923;
7986 7998 8012 8123 8456 8498 8654 8723 8923 10093;
7998 8012 8123 8456 8498 8654 8723 8923 10093 11626;
8012 8123 8456 8498 8654 8723 8923 10093 11626 11536;
8123 8456 8498 8654 8723 8923 10093 11626 11536 11276;
8456 8498 8654 8723 8923 10093 11626 11536 11276 9606;
8498 8654 8723 8923 10093 11626 11536 11276 9606 8769 ;
8654 8723 8923 10093 11626 11536 11276 9606 8769 8068;
8723 8923 10093 11626 11536 11276 9606 8769 8068 7541;
8923 10093 11626 11536 11276 9606 8769 8068 7541 9717];
%对应输出量:
t=[8123 8456 8498;
8456 8498 8654;
8498 8654 8723;
8654 8723 8923;
8723 8923 10093;
8923 10093 11626;
10093 11626 11536;
11626 11536 11276 ;
11536 11276 9606;
11276 9606 8769;
9606 8769 8068;
8769 8068 7541;
8068 7541 9717;
7541 9717 8886;
9717 8886 9287;
8886 9287 9710;];

%对数据进行归一化(即缩放到0,1之间),P,T分别为归一化后的输入量和输出量
for i=1:16
P(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));
end
for i=1:16
T(i,:)=(t(i,:)-min(t(i,:)))/(max(t(i,:))-min(t(i,:)));
end

%选取前14组数据训练网络,第15,16组用来测试训练好的网络。
PP=[P(1,:);P(2,:);P(3,:); P(4,:);P(5,:);P(6,:);P(7,:);
P(8,:);P(9,:);P(10,:); P(11,:);P(12,:);P(13,:);P(14,:)];
Ptest=[P(15,:);P(16,:)]';
TT=[T(1,:);T(2,:);T(3,:); T(4,:);T(5,:);T(6,:);T(7,:);
T(8,:);T(9,:);T(10,:); T(11,:);T(12,:);T(13,:);T(14,:)];
Ttest=[T(15,:);T(16,:)]'

PP=PP'
TT=TT'
%s是隐层单元数,用for循环试试3种隐层
s=[10,15,18];
res=1:3;
for i=1:3
net=newff(minmax(PP),[s(i),3],{'tansig','logsig'},'trainlm');
net.trainParam.epochs=500;
net.trainParam.goal=0.0001;
net=train(net,PP,TT);
y=sim(net,PP);
error=y-TT;
res(i)=norm(error);
end
%用Ptest测试训练好的网络效果。
Y=sim(net,Ptest)

Ttest =

1.0000 0
0 0.4867
0.4826 1.0000

Y =

0.0000 0.0000
0.9974 0.9990
0.9985 1.0000

对比Ttest和Y,如果相似,则预测效果好,呃,很明显,我这个网络效果很糟糕...你将数据重新分组,数据分组有两个参数,即今年之前m年影响今年之后N年。像上面我是之前10年决定之后3年,看来不行...
全部回答
原理就是:建立网络-数据归一化-训练-预测-数据反归一化。附件是电力负荷预测的例子,可以参考。 bp(back propagation)神经网络是1986年由rumelhart和mccelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。bp网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。bp神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
岩峰槽地址在什么地方,想过去办事
我想找佳木斯大学王丽,有谁知道,
请批(男)甲辰癸酉乙酉丙戍八字
国际米兰什么时候成立的
北京海淀区哪里可以配自行车钥匙?
有没有人用轻博客推广过产品 效果如何 轻博客
下列属于生殖的是A. 红骨髓不断产生新的细胞B
多丽丝杜克的遗产给谁了
东洲博士梨河连锁店我想知道这个在什么地方
一个同事离职了,不知道说些什么告别的话语已
顺意汽车销售有限公司在哪里啊,我有事要去这
奶酪吃了会胖吗
【曾侯乙编钟】著名文物曾侯乙编钟出土于哪个
企业募集资金的方式有哪些?
路由器隔着一个墙,信号是满格的,网速回受到
推荐资讯
鸿茅药酒早晩各服次,空腹喝,还是饭后喝?
以下这句英文中有一个词是“doo”我不知道它
雯鑫副食超市地址在什么地方,想过去办事
埋人七单怎么写
派出所是不是可以随便把一个人当成犯罪嫌疑人
新河东路派出所新街口警务室地址在哪,我要去
我家是农村户口,爸妈都去世了,现在我家户口
打印机不能连续打印 只能一张一张打怎么解决
已知教室里的讲台长3m,你认为教师站在距离讲
“白酒的酿造过程中利用了霉菌和酵母菌两种微
百合稀饭有什么好处
岳灵生发怎么去啊,有知道地址的么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?