help with error in my code
    1 view (last 30 days)
  
       Show older comments
    
 Hi can someone help me understand the mistake in my code,  i followed the correct syntax from https://uk.mathworks.com/help/bioinfo/ref/classperf.html
i keep getting the error 
operator "==" not supported for operands of type "cvpartition"
error in line 24
test = (indices == 1)
k = 4;
n = 699; %sample lenght
rng ('default')
indices = cvpartition(n,'kfold', k);
for i = 1:k
  test= (indices == i); train = ~test;
  class = classify(InputVariable(test,:),InputVariable(train,:),OutputVariable(train,:));
  classperf(cp,class,test);
end
cp.ErrorRate  
plotconfusion(testTarget, testY)
4 Comments
  Stephen23
      
      
 on 2 Jan 2021
				
      Edited: Stephen23
      
      
 on 2 Jan 2021
  
			Original question by Dilpreet kaur retrieved from Google Cache:
help with error in my code
 Hi can someone help me understand the mistake in my code,  i followed the correct syntax from https://uk.mathworks.com/help/bioinfo/ref/classperf.html
i keep getting the error 
operator "==" not supported for operands of type "cvpartition"
error in line 24
test = (indices == 1)
k = 4;
n = 699; %sample lenght
rng ('default')
indices = cvpartition(n,'kfold', k);
for i = 1:k
  test= (indices == i); train = ~test;
  class = classify(InputVariable(test,:),InputVariable(train,:),OutputVariable(train,:));
  classperf(cp,class,test);
end
cp.ErrorRate  
plotconfusion(testTarget, testY)
Accepted Answer
  Image Analyst
      
      
 on 31 Dec 2020
        I get this:
k = 4;
n = 699; %sample lenght
rng ('default')
indices = cvpartition(n,'kfold', k)
indices = 
K-fold cross validation partition
   NumObservations: 699
       NumTestSets: 4
         TrainSize: 525  524  524  524
          TestSize: 174  175  175  175
You're not using indices correctly.  It's an object, not a list of indices.  If you want a listof indices, use randperm().
0 Comments
More Answers (1)
  Walter Roberson
      
      
 on 1 Jan 2021
        
      Edited: Walter Roberson
      
      
 on 2 Jan 2021
  
      cvpartition does not return indices. 
rng ('default')
nfold = 4;
cvfolds = cvpartition(699,'kfold', nfold);
cp = classperf(OutputVariable); % initializes the CP object
for i = 1:nfold
  test = cvfolds.test(i);
  train = cvfolds.training(i);
  class = classify(InputVariable(test,:), InputVariable(train,:), OutputVariable(train,:));
  classperf(cp, class, test);
end
cp.ErrorRate 
0 Comments
See Also
Categories
				Find more on Model Building and Assessment in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




