help with error in my code
2 views (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 Get Started with Statistics and Machine Learning Toolbox 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!