سلام
من یک کد برای cross validation نوشتم ولی با اینکه بردار های ورودی و خروجی یک اندازه هستند خطایی که متلب بهم میده اینه:
کدی هم که نوشتم :
سایز رو که چاپ میکنم یکیه ولی موقع آموزش میگه تعداد داده های ورودی و خروجی برابر نیست .. نمی فهمم اشکال کجاست
من یک کد برای cross validation نوشتم ولی با اینکه بردار های ورودی و خروجی یک اندازه هستند خطایی که متلب بهم میده اینه:
کد:
Error using trainlm (line 109) Inputs and targets have different numbers of samples. Error in network/train (line 106) [net,tr] = feval(net.trainFcn,net,X,T,Xi,Ai,EW,net.trainParam); Error in folding (line 37) net = train(net,train_data,tg);
کد:
k=10; step=floor(size(data,1)/k); for j =1:k if j~= k startpoint=(j-1)*step+1; endpoint=(j)*step; else startpoint=(j-1)*step+1; endpoint=size(data,1); end cv_p=startpoint:endpoint; %%%% test set position %%%%%%%%%%%%%% test set Test_data=data(cv_p,:); test_target = target(cv_p,:); %%%%%%%%%%%%%% training data train_data=data; train_data(cv_p,:)=''; tg=target; tg(cv_p,:)= ''; %display(target); display(size(tg)); display (size(train_data)); net = newff( minmax(train_data),tg); net = train(net,train_data,tg); r=sim(net,train_data); MTrain(j)=mse(target-r); testsim = sim(net, test_data); Mtest(j)=mse(test_target-testsim); end