How to implement cross validation with back propogation network

2 次查看(过去 30 天)
Sir, How to implement cross validation methods such as k fold and leave one out with back propogation network... i have tried with SVm works good.. but dont know how to merge k fold with bpn... .. thanks
  1 个评论
Subha
Subha 2013-3-11
i've tried this code...
load dataset4_bp_kn_fs
TrainingSet=data;
GroupTrain=target;
Indices = crossvalind('Kfold',GroupTrain , 10);
for i=1:10
test = (Indices == i); train = ~test;
net = newff(TrainingSet(train,:),GroupTrain(train,:),20,{},'trainscg');
[net,TR] = traingd(net,TrainingSet(train,:),TrainingSet(test,:))
a = sim(net,TrainingSet(train,:));
b=sim(net,TrainingSet(test,:));
end
where, data is 16 x 54 and target is 1x54 i'm getting error as, ??? Index exceeds matrix dimensions. and
??? Error using ==> network.subsref at 83 Reference to non-existent field 'lr'.
Error in ==> traingd at 141 lr = net.trainParam.lr; ..
i've made few trials too like setting the target as 3x54 matrix but dono how to proceed with this... really in a confused state..

请先登录,再进行评论。

采纳的回答

Tom Lane
Tom Lane 2013-3-12
I am not a nnet expert, but I am under the impression that your inputs should have one column per observation (rather than one row as in the Statistics Toolbox). If that is the case you may need to use "train" and "test" to index into columns rather than rows. Also, I believe traingd wants training set target values as its third input, not X data for the test set.
  1 个评论
Subha
Subha 2013-3-12
Sir with your piece of advice i've done few modification.. like (test,:) as (:,test), now its working good , Accuracy seem to be low, have to try some thing to improve it... but really Matlab is like an ocean.. i've to learn lots more... .. Thank you Sir..

请先登录,再进行评论。

更多回答(1 个)

laplace laplace
laplace laplace 2013-6-25
how did you apply the crossvalind command to column vectors??

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by