Is it possible , to use NaiveBayes.fit prediction with crossvalind

1 view (last 30 days)
Subha
Subha on 10 Mar 2013
Commented: Narges J on 3 Sep 2014
Sir, with the given code i executed the program but it returns error.... i'm in need to calculate sensitivity and specificity also.. ... ??? Error using ==> subsindex Function 'subsindex' is not defined for values of class 'biolearning.classperformance'. .... so is it not possible for us to use crossvalind with NaiveBayes.fit?????? ...
load target
load data
GroupTrain=target;
TrainingSet=data;
Indices = crossvalind('Kfold', GroupTrain,10);
cp1 = classperf(GroupTrain)
for i = 1:10
test = (Indices == i); train = ~test;
Bayes_Model = NaiveBayes.fit(TrainingSet(train,:), GroupTrain(train,:), 'Distribution','kernel');
[Bayes_Predicted] = Bayes_Model.predict(data(test(cp1,1),:));
[conf, classorder] = confusionmat(target(test(c,1)),Bayes_Predicted);
classperf(cp1,Bayes_Model,test)
end
.. waiting for valuable suggestion...

Accepted Answer

Tom Lane
Tom Lane on 10 Mar 2013
The error comes from this:
test(cp1,1)
You're using cp1 to index into the logical vector test. I suspect you want something like
data(test,:)
Then you may move on to the line where "c" is undefined, but perhaps you can take it from there.
  2 Comments
Narges J
Narges J on 3 Sep 2014
Hi,
I wrote the code like above and did modification but I received this error:
Error using classreg.learning.internal.DisallowVectorOps/subsref (line 16) You cannot index into an object of class NaiveBayes using () indexing.
Error in classperf (line 219) gps = varargin{1}(:);
Please can you help me how I can solve it.
Thank you.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by