اطلاعیه

Collapse
No announcement yet.

cross validation

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    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
    سایز رو که چاپ میکنم یکیه ولی موقع آموزش میگه تعداد داده های ورودی و خروجی برابر نیست .. نمی فهمم اشکال کجاست
لطفا صبر کنید...
X