У меня есть обучающий набор данных (50000 X 16) и тестовый набор данных (5000 X 16) [16-й столбец в обоих наборах данных - это метки решения или ответ. Метка решения в тестовом наборе данных используется для проверки точности классификации обученного классификатора]. Я использую свои тренировочные данные для обучения и проверки моего перекрестно проверенного классификатора Knn. Я создал модель классификатора с перекрестной проверкой, используя следующий код:
X = Dataset2(1:50000,:); % Use some data for fitting
Y = Training_Label(1:50000,:); % Response of training data
%Create a KNN Classifier model
rng(10); % For reproducibility
Mdl = fitcknn(X,Y,'Distance', 'Cosine', 'Exponent', '', 'NumNeighbors', 10,'DistanceWeight', 'Equal', 'StandardizeData', 1);
%Construct a cross-validated classifier from the model.
CVMdl = crossval(Mdl,'KFold', 10);
%Examine the cross-validation loss, which is the average loss of each cross-validation model when predicting on data that is not used for training.
kloss = kfoldLoss(CVMdl, 'LossFun', 'ClassifError')
% Compute validation accuracy
validationAccuracy = 1 - kloss;
теперь я хочу классифицировать свои тестовые данные с помощью этого перекрестно проверенного классификатора knn, но не могу понять, как это сделать. Я просмотрел доступные примеры в Matlab, но не смог найти подходящей функции или примеров для этого.
Я знаю, что могу использовать функцию «прогноз» для прогнозирования меток классов моих тестовых данных, если мой классификатор не прошел перекрестную проверку. Код выглядит следующим образом:
X = Dataset2(1:50000,:); % Use some data for fitting
Y = Training_Label(1:50000,:); % Response of training data
%Create a KNN Classifier model
rng(10); % For reproducibility
Mdl = fitcknn(X,Y,'Distance', 'Cosine', 'Exponent', '', 'NumNeighbors', 10,'DistanceWeight', 'Equal', 'StandardizeData', 1);
%Classification using Test Data
Classifier_Output_Labels = predict(Mdl,TestDataset2(1:5000,:));
Но я не смог найти аналогичной функции (например, «прогноз») для перекрестно проверенного обученного классификатора knn. Я обнаружил функцию «kfoldPredict» в документации Matlab, но в ней говорится, что функция используется для оценки обученной модели. http://www.mathworks.com/help/stats/classificationpartitionedmodel.kfoldpredict.html Но я не нашел ввода новых данных через эту функцию.
Итак, может ли кто-нибудь посоветовать мне, как использовать модель классификатора с перекрестной проверкой knn для прогнозирования меток новых данных? Любая помощь приветствуется и крайне необходима. :( :(