سلام
من یک کد برای 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
