Я хочу определить, равен ли каждый элемент набора testData предсказанию KNN, а если он отличается, удалите этот случай и создайте новый набор данных, содержащий только те случаи, когда KNN предсказано правильно.Как удалить неправильные прогнозы после внедрения KNN в Matlab?
Это похоже на удаление неправильных прогнозов KNN, поэтому у меня есть только правильные.
Я думаю, что я могу сравнить: Класс против testData по индексу, и если я нахожу разные значения, удалите эту строку.
Что было бы эффективным способом сделать это?
Это код (я получал помощь от пользователя @Rijul с этим):
trainData= [148.0,50.0,0; ...
187.0,34.0,0; ...
204.0,89.0,0; ...
430.0,161.0,1; ...
427.0,22.0,1; ...
-42.0,469.0,1 ...
];
testData= [290.0,-57.0,0; ...
194.0,-80.0,0; ...
174.0,33.0,0; ...
465.0,691.0,1; ...
270.0,-194.0,1; ...
-56.0,665.0,1];
% Data
Sample=testData(:,1:2);
Training=trainData(:,1:2);
Group=trainData(:,3);
% Classify
k=1; % number of nearest neighbors used in the classification
Class = knnclassify(Sample, Training, Group,k);
% Display Prediction
fprintf('%.1f %.1f - Real %d , Predicted %d\n',[testData.'; Class.']);
testLabel=testData(:,3);
cp = classperf(testLabel,Class);
cp.CorrectRate*100
Я думаю, что я пытаюсь достичь называется ENN Rule.