⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nearestneighbor.m

📁 模式识别问题最近邻算法的matlab实现
💻 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 + -