📄 nnclassifier.m
字号:
% Nearest Neighbour Classifier-NNC
function [NNCrate]=NNclassifier(features,test_features,trnum,tenum,classnum)
% features the matrix that training samples projected on feature subspace(训练样本数*特征维数,行矢量)
% test_features the matrix that test samples projected on feature subspace(测试样本数*特征维数,行矢量)
% trnum the number of training samples of each class
% tenum the number of test samples of each class
% classnum the number of classes
% NNCrate the output correct classification rate of each class and the total
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
result=zeros(1,size(test_features,1));
for k1=1:1:size(test_features,1)
tt=[];
for k2=1:1:size(features,1)
tt=[tt norm(test_features(k1,:)-features(k2,:))];
end
[tt,ind]=sort(tt);
result(k1)=ceil(ind(1)/trnum);
end
% correct classification rate of all class
rr=0;
for k1=1:1:size(result,2)
if result(k1)==ceil(k1/tenum);
rr=rr+1;
end
end
rt = rr/(tenum*classnum);
% correct classification rate of each class
rrn=zeros(1,classnum);
for i=1:tenum
for j=1:classnum
if result(i+(j-1)*tenum)==ceil((i+(j-1)*tenum)/tenum)
rrn(j)=rrn(j)+1;
end
end
end
CCrate=rrn/tenum;
% mean correct classification rate, it is equal to the total correct classification rate
rtmean=sum(CCrate)/classnum;
% output
NNCrate=zeros(1,classnum+2);
NNCrate=[CCrate,rtmean,rt];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -