KNN検索を使用して、テストデータを分類し、分類率を見つける必要があります。
以下はmatlabコードです:例:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
load fisheriris
x = meas(:,3:4); % x =all training data
y = [5 1.45;6 2;2.75 .75]; % y =3 testing data
[n,d] = knnsearch(x,y,'k',10); % find the 10 nearest neighbors to three testing data
for b=1:3
tabulate(species(n(b,:)))
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
結果はコマンドウィンドウに表示されました:
tabulate(species(n(1,:)))
Value Count Percent
virginica 2 20.00%
versicolor 8 80.00%
tabulate(species(n(2,:)))
Value Count Percent
virginica 10 100.00%
tabulate(species(n(3,:)))
Value Count Percent
versicolor 7 70.00%
setosa 3 30.00%
テストポイントが「Versicolor」の場合、1番目と3番目のテストポイントの結果は正しく分類され、2番目のテストポイントは間違っているため、分類率は2/3 x100%= 66.7%になります。
分類率を自動的に見つけて結果をワークスペースに保存するようにMATLABコードを変更するアイデアはありますか?