24小时热门版块排行榜    

CyRhmU.jpeg
查看: 614  |  回复: 1

fanfanjia

新虫 (初入文坛)

[求助] [font=宋体]用MATLAB编写的BP神经网络如何增加检验结果?[/font]

本人初次接触MATLAB,现在已有定制的一套BP神经网络,一共有90个数据,用60个数据进行测试,后面的程序如下:
y = sim(net,P(:,1:60));  

figure;
plot(y,'.k');hold on
plot(T(1:60),'k-x');hold on
legend('预测数据(归一化)','实际数据(归一化)');
title('预测数据实际数据对比效果, β_胡萝卜素');



%预测效果分析
for i = 1:length(T(1:60));
    K(i)  = abs(y(i) - T(i))/(T(i));
end

RMSE = sqrt(sum((y - T(1:60))*(y - T(1:60))')/length(T(1:60)))

E    = 1 - sum((y - T(1:60))*(y - T(1:60))')/sum((T(1:60) - mean(T(1:60)))*(T(1:60) - mean(T(1:60)))')

k   = abs(y - T(1:60))/(T(1:60))

我现在的疑问是:按照这个程序,是不是这60个样本为训练样本集?现在我想用剩余样本(30个)作为检验样本集,并输出检验结果,不知如何操作?急需帮助!!
回复此楼

» 收录本帖的淘帖专辑推荐

matlab

» 猜你喜欢

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

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

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
fanfanjia: 金币+50, ★★★很有帮助 2012-08-21 10:13:26
训练用train,使用用sim。
按你说的实现都训练好了,那就不用再训练了,直接对30个样本用sim就行了。
你的程序是用60个进行校验。

如果只是训练和校验,那么按下面的改改
% Setup Division of Data for Training, Validation, Testing
net.divideParam.trainRatio = 60/90;
net.divideParam.valRatio = 30/90;
net.divideParam.testRatio = 0;
[net,tr] = train(net,inputs,targets);    % Train the Network,这样会重新使用60个训练网络,30个校验网络。当然你还可以设置测试的比例。
showmethemoney
2楼2012-08-16 09:43:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 fanfanjia 的主题更新
信息提示
请填处理意见