24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2411  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

luffy800

新虫 (初入文坛)

[求助] matlab 的 bp神经网络 预测 问题..小作业..

有没有对人工神经网络, bp神经网络等比较熟悉的同学?我是一名学生,正在学习bp网络,有一个小小的作业。期待您能帮我解答...现在有10组数据,每组数据有4个输入节点和3个输出节点,建立bp网络并训练..然后再另外拿两组数据的输入来预测结果校验误差,对比实际的输出与网络预测的输出的误差..如果可以..请留个Q..我提供数据..帮我解决下代码问题.....

或者帮我指导下我的代码...误差总是很高...而且运行仿真语句的时候出来的10组结果数据都是一样的....是什么问题呢...?是应为数据太少吗...?还是我的代码出问题了...?
求各位哥哥姐姐解答....谢谢了...

附上代码
% NEWFF——生成一个新的前向神经网络
% TRAIN——对 BP 神经网络进行训练
% SIM——对 BP 神经网络进行仿真

%  定义训练样本
% P 为输入矢量
P=[4.32 17.78 77.9 21.157;9.48 21 69.52 20.038;8.36 27.61 64.03 18.317;9.68 32.88 57.44 16.065;3.21 9.44 87.35 13.484;9.62 15.56 74.82 18.103;10.49 19.45 70.06 18.173;16.62 22.41 60.97 18.33;12.52 23.94 63.54 18.472;13.1 24.97 61.33 19.211]'
% T 为目标矢量
T=[327 897 480;322 868 472;315 843 460;305 800 447;302 741 420;389 834 465;392 801 422;448 846 463;475 890 491;479 891 509]'

size(P)
size(T)
% size(P)
% size(T)


%  创建一个新的前向神经网络  
net_1=newff(minmax(P),[10,3],{'tansig','purelin'},'traingdm')

%  当前输入层权值和阈值
inputWeights=net_1.IW{1,1}
inputbias=net_1.b{1}
%  当前网络层权值和阈值
layerWeights=net_1.LW{2,1}
layerbias=net_1.b{2}

%  设置训练参数
net_1.trainParam.show = 50;
net_1.trainParam.lr = 0.01;
net_1.trainParam.mc = 0.9;
net_1.trainParam.epochs = 10000;
net_1.trainParam.goal = 1e-6;

%  调用 TRAINGDM 算法训练 BP 网络
[net_1,tr]=train(net_1,P,T);

%  对 BP 网络进行仿真
A = sim(net_1,P);
%  计算仿真误差  
E = T - A;
MSE=mse(E)

x=[9.5 23.8 66.7 19.238]';
B=sim(net_1,x)
H=[319 857 469]'
K=H-B
MSE=mse(K)
回复此楼

» 本帖@通知

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jswoo

铁杆木虫 (著名写手)

阿拉多梦

【答案】应助回帖

感谢参与,应助指数 +1
误差还可以,R2=0.9几了~~
5楼2012-03-05 15:24:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

luffy800

新虫 (初入文坛)

真心求解决...有偿
3楼2012-03-01 16:29:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jswoo

铁杆木虫 (著名写手)

阿拉多梦

引用回帖:
3楼: Originally posted by luffy800 at 2012-03-01 16:29:48:
真心求解决...有偿

多少??
4楼2012-03-05 12:59:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

伏羲门下

铜虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
话说,怎么没看到你的x=[9.5 23.8 66.7 19.238]';归一化?我用C++做的哈,matlab不是特别了解。但是net_1=newff(minmax(P),[10,3],{'tansig','purelin'},'traingdm')你好像把P归一化了,所以是一个小范围的值,但是x范围太大,应该是这个原因。
7楼2012-04-20 11:03:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见