0
testDataセットの各要素がKNNの予測と等しいかどうかを判断し、違う場合はそのケースを削除し、KNNが正しく予測したケースのみを含む新しいデータセットを作成します。MatlabでKNNを実装した後に間違った予測を削除するには?
KNNの間違った予測を削除するようなものなので、正しいものだけを持っています。
私は私が比較することができると思う:クラスとtestDataのインデックスで、私は異なる値を見つける場合、その行を削除します。
効果的な方法は何でしょうか?
これは、コード(私はこれでユーザー@Rijulからの助けを受け取った)である:私は私が達成しようとしていることENNルールと呼ばれていると思います
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
。