📄 knn_auto.m
字号:
function KNN_auto(afile, bfile, k)
% -------------------------------------------------
% afile is for training; and bfile is for testing.
% -------------------------------------------------
eval(sprintf('load %s.txt; load %s.txt',afile,bfile));
eval(sprintf('Tr_num=size(%s,1); dat_a=%s; dat_b =%s;',afile,afile, bfile)); % add training and testing data
data=[dat_a; dat_b];
[num,dim]=size(data);
data(:,1:dim-1)=Dat_Normalize(data(:,1:dim-1),1);
[Tr_num, dim] = size(dat_a);
[Te_num, dim] = size(dat_b);
tr_data=data(1:Tr_num,:);
te_data=data(Tr_num+1:end,:);
computed=[];
for j=1:Te_num
computed = [computed knn(te_data(j,1:dim-1), tr_data(:,1:dim-1), tr_data(:,end)', k)];
end
tmp = te_data(:,end) - computed';
rec = length(find(tmp == 0)) / length(tmp);
disp(sprintf('Testing Accuracy:%f\%',rec*100));
ctmp=dat_b(:,end);
cret=[];
for k =1:length(unique(dat_a(:,end)))
dtmp=find(ctmp ==k);
cret(k) = length(find(computed(dtmp)==k))/length(dtmp);
disp(sprintf('Class %d: %4.2f \%',k, cret(k)*100));
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -