📄 nearestneighbor.m
字号:
clear;load data_for_PR;%由于data各维数据差距很大,故先平滑数据。%经此处理后数据都落在[0,0.8)中,实践证明取4次log效果最好.识别度达到39/44=0.8864data=log(1+log(1+log(1+log(1+data))));%上面平滑过程保证0分量依然为0,现在去除0分量i=1;while i~=size(data,1) if data(i,:)==0 data(i,:)=[]; else i=i+1; endend%共176个数据,4类数据分别有44 46 47 24 44 个%这里取第4k(k为整数)共176/4=44个个元素为测试集,其余为训练集 RightCount=0;for test=4:4:176 MinIndex=1;MinDiff=Inf; for train=1:176 if mod(train,4)~=0 Diff(train,test/4)=sum((data(:,train)-data(:,test)).^2); %欧式距离 if Diff(train,test/4)<MinDiff %取最小欧式距离的向量下标 MinDiff=Diff(train,test/4);MinIndex=train; end end end if label(test)==label(MinIndex); RightCount=RightCount+1; endendAcuracy=RightCount/44;sprintf('44个数据识别%d个,正确率为: %f',RightCount,Acuracy)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -