24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2197  |  回复: 9

风满楼s

银虫 (正式写手)

[求助] 基于MATLAB的BP神经网络已有1人参与

写了个BP神经网络的小程序,但进行预测的时候总是误差太大,不知道从何改起,求助大神帮助,程序如下。谢谢
Te=[900.00,1000.00,900.00,900.00,1000.00,1000.00,866.00,1034.00,950.00,950.00,950.00,950.00,950.00,950.00,950.00,950.00];
Te1=[1000.00,900.00,950.00,950.00];
Ti=[50.00,50.00,70.00,50.00,50.00,70.00,61.00,60.00,43.00,77.00,60.00,60.00,60.00,60.00,60.00,60.00];
Ti1=[70,70,60,60];
S=[2.00,2.00,2.00,3.00,3.00,3.00,2.50,2.50,2.50,2.50,3.34,2.50,2.50,2.50,2.50,2.50];
S1=[2.00,3.00,1.66,2.50];
I=[900.00,950.00,960.00,953.00,1060.00,1011.00,899.00,1023.00,942.00,1025.00,1000.00,1103.00,1100.00,1104.00,1100.00,1101.00];
I1=[995.00,1050.00,945.00,1101.00];
Y=[80.23,77.35,74.59,75.24,66.30,60.49,83.27,63.34,78.12,70.11,55.40,68.10,68.21,68.03,68.30,68.17];
Y1=[72.01,65.65,78.63,68.11];
P=[Te;Ti;S];%输入数据
P1=[Te1;Ti1;S1];%检测的输入数据
T=[I;Y];  %输出数据
T1=[I1;Y1];  %检测的的输出实际数据
[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T);  %归一化
net=newff(minmax(Pn),[3,3,2],{'tansig', 'tansig','purelin'},'trainlm');  %建立神经网络
net.trainParam.goal=0.000001;      
net.trainParam.show=50;
net=train(net,Pn,Tn);    %网络训脸
[Pn1]=tramnmx(P1,minp,maxp)    %检测输入数据的归一化
t_sim1=sim(net,Pn1);    %模拟输出
t_sim2=postmnmx(t_sim1,mint,maxt);   %模拟数据的反归一化
E1=t_sim2-T1    %模拟值与实际值的差值
M1=mse(E1)
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

风满楼s

银虫 (正式写手)

费心了
2楼2014-08-13 10:39:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

paopaoai11

木虫 (小有名气)

【答案】应助回帖


感谢参与,应助指数 +1
风满楼s: 金币+1, 有帮助 2014-08-14 10:45:00
最近也要开始接触神经网络了,虽然我还不懂,但先顶一个

[ 发自小木虫客户端 ]
泡泡
3楼2014-08-13 17:56:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bcsnow

铁杆木虫 (著名写手)

【答案】应助回帖


感谢参与,应助指数 +1
风满楼s: 金币+1, 有帮助 2014-08-14 13:46:47
这么简单的程序怎么改啊,步骤、函数都是固定的,要改只能改数据了
4楼2014-08-14 12:51:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

风满楼s

银虫 (正式写手)

引用回帖:
4楼: Originally posted by bcsnow at 2014-08-14 12:51:21
这么简单的程序怎么改啊,步骤、函数都是固定的,要改只能改数据了

数据是固定的啊 ,就是要改程序,来提高预测的准确性
5楼2014-08-14 13:27:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bcsnow

铁杆木虫 (著名写手)

引用回帖:
5楼: Originally posted by 风满楼s at 2014-08-14 13:27:04
数据是固定的啊 ,就是要改程序,来提高预测的准确性...

不是主观改,是重新采数据,如果实际也是输入固定时输出不变,那就不能从数据入手了。程序也就能能改改节点数和传递函数,实在不行改算法吧
6楼2014-08-15 08:25:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

风满楼s

银虫 (正式写手)

引用回帖:
6楼: Originally posted by bcsnow at 2014-08-15 08:25:03
不是主观改,是重新采数据,如果实际也是输入固定时输出不变,那就不能从数据入手了。程序也就能能改改节点数和传递函数,实在不行改算法吧...

就是改神经元个数,和隐含数层数,改了半天还是达不到预期结果,而且同样的程序,同样的数据,前后两次输入,检测结果都不一样,这是为什么呢?
7楼2014-08-15 08:38:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bcsnow

铁杆木虫 (著名写手)

引用回帖:
7楼: Originally posted by 风满楼s at 2014-08-15 08:38:09
就是改神经元个数,和隐含数层数,改了半天还是达不到预期结果,而且同样的程序,同样的数据,前后两次输入,检测结果都不一样,这是为什么呢?...

因为你每次执行程序时,都要重新训练一遍,权值要重新初始化
8楼2014-08-15 14:14:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

风满楼s

银虫 (正式写手)

引用回帖:
8楼: Originally posted by bcsnow at 2014-08-15 14:14:38
因为你每次执行程序时,都要重新训练一遍,权值要重新初始化...

那么怎么样才能选择比较好的初始权值和阀值,使我的预测误差降低?
9楼2014-08-15 16:50:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

晨星素问

金虫 (小有名气)

【答案】应助回帖

★ ★ ★
风满楼s: 金币+3, 有帮助 2015-06-03 18:25:13
可以先用群体智能算法找到一个较优的权值与阈值,再用这个权值与阈值训练
10楼2015-06-03 16:51:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 风满楼s 的主题更新
信息提示
请填处理意见