• 大小: 18KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: Matlab
  • 标签: knn  

资源简介

Matlab实现的Knn算法,用于数字图像分类,具有很高的准确率

资源截图

代码片段和文件信息

%clear
clear;close all;clc

%load data

train_data=load(‘train.csv‘);
[mn]=size(train_data);

trainY=train_data(:1);
trainX=train_data(:2:n);
[mn]=size(trainX);


fprintf(‘Load the train data.Finished  %d*%d Matrix‘mn);

test_data=load(‘test.csv‘);
testX=test_data(::);
[testmtestn]=size(testX);
fprintf(‘Load the test data.Finished . %d*%d Matrix‘testmtestn);

%realize knn algorithm
result=zeros(testm1);
num=10;%choose 10 neigborhood
for testi=1:testm
    hasnum=1;
    bestdistance=zeros(num1);
    bestresult=zeros(num1);
    for traini=1:m
        distance=sqrt(sum((testX(testi:)-trainX(traini:)).*(testX(testi:)-trainX(traini:))));
        if hasnum<=num
            bestdistance(hasnum1)=distance;
            bestresult(hasnum1)=trainY(traini);
            hasnum=hasnum+1;
        elseif max(bestdistance)>distance
            [mn]=max(bestdistance);
            bestdistance(n)=distance;
            bestresult(n)=trainY(traini);
            %next
        end
    end
    %choose the result
    digit=zeros(101);
    for label=1:num
           digit(bestresult(label)+1)=digit(bestresult(label)+1)+1;
    end
    [rmrindex]=max(digit);
    result(testi)=rindex-1;
end

%write the result to file

fprintf(‘write the answer to csv file....‘);
csvwrite(‘knn_20120926_1628.csv‘result);




 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1375  2011-09-26 17:08  knn\knntest.asv

     文件       1376  2011-09-26 19:03  knn\knntest.m

     文件      84000  2011-09-26 20:31  knn\knn_20120926_1628.csv

     目录          0  2012-10-16 15:50  knn

----------- ---------  ---------- -----  ----

                86751                    4


评论

共有 条评论