MATLAB Answers

Correct way of using kfoldLoss

28 views (last 30 days)
DG on 7 Oct 2017
Commented: Ali Yar Khan on 5 Feb 2020
I am trying to do a crossvalidation using a K-nn classifier. In the past, I used cvpartition to achieve this, but I found kfoldLoss function recently and using it seems much easier.
So this is the code that I have where I am using fitcknn to classify breast data (from NIPS) and then want to do 10 fold CV. My question is that when I do kfoldLoss, is it running 10-fold CV where it re-trains and tests on CV partitioned data for each fold, or is using the trained fitcknn 'Mdl' and just using that same trained classifier again and again. And if it does knn again for each partition, do i need to use fitcknn for the complete data because that just seems of no use.
Mdl = fitcknn(breast.sel, breast.labels,'NumNeighbors', 3,'KFold',10);
kl = kfoldLoss(Mdl)

Answers (1)

Carl on 10 Oct 2017
The documentation page below has a good explanation of how kFold* functions work on cross-validated models:
To answer your questions,
  1. kFoldLoss will use an already trained (cross-validated) model
  2. The loss is calculated on the validation data for each fold in the cross-validated model
  1 Comment
Ali Yar Khan
Ali Yar Khan on 5 Feb 2020
i want to get the total test instances of each fold as well as no of misclassified and correct classified from the model how i can do that?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by