knn.m
来自「K-Nearest neighbour algorithm」· M 代码 · 共 42 行
M
42 行
function TestClasses=knn(k,GlassData,GlassClasses,TestData)
GlassData0=averageM(GlassData);
TestData0=averageM(TestData);
[rowTest,colTest]=size(TestData0);
TestClasses=zeros(rowTest,1);
for ii=1:rowTest(1,1)
S=size(GlassData0);
N=S(1,1);
D=zeros(N,1);
for jj=1:N
Distance=0;
for kk=1:colTest(1,1)
Distance=Distance+(GlassData0(jj,kk)-TestData0(ii,kk))^2;
end
D(jj,1)=sqrt(Distance);
end
TempM0=[rot90(D);rot90(GlassClasses)];
TempM1=rot90(TempM0,3);
TempM=sortrows(TempM1,2);
Ncout=zeros(6,2);
for nnn=1:6
Ncout(nnn,2)=nnn;
end
for count=1:k
switch TempM(count,1)
case 1
Ncout(1,1)=Ncout(1,1)+1;
case 2
Ncout(2,1)=Ncout(2,1)+1;
case 3
Ncout(3,1)=Ncout(3,1)+1;
case 4
Ncout(4,1)=Ncout(4,1)+1;
case 5
Ncout(5,1)=Ncout(5,1)+1;
case 6
Ncout(6,1)=Ncout(6,1)+1;
end
end
Ncoutsort=sortrows(Ncout);
TestClasses(ii,1)=Ncoutsort(6,2);
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?