• 大小: 2KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: Matlab
  • 标签: KNN算法  代码  

资源简介

对鸢尾花数据进行分类,使用KNN算法,可直接在matlab上运行。

资源截图

代码片段和文件信息

load ‘iris.csv‘;
Value1 = mean(iris(:1:4));%前4列求均值
Value2 = std(iris(:1:4));%前4列求标准差  
Data = zeros(1505);
for i = 1:4
    Data(:i) = (iris(:i) - Value1(i)) / Value2(i);%前4列归一化处理
end
Data(:5) = iris(:5);
training_set = [Data(1:ceil(50*2/3):); Data(51:50 + ceil(50*2/3):); Data(101:100 + ceil(50*2/3):)];%取每类的前2/3作为训练集
test_set = [Data(ceil(50*2/3) + 1:50:); Data(51 + ceil(50*2/3):100:); Data(101 + ceil(50*2/3):150:)];%取每类的后1/3作为测试集
class = test_set(:5);%记录类标
test_set(:5) = 0;

k = 5;
dist_class = zeros(size(training_set1)2);%存放测试欧几里德距离
for i = 1:size(test_set1)
    for j = 1:size(training_set1)
        dist_class(j1) = norm(test_set(i1:4) - training_set(j1:4));
        dist_class(j2) = training_set(j5);    
    end
    [BIX] = sort(dist_class1);%对距离排列
    mindc = B(1:k:)%取k个最近的临近点
    for ii = 1:k 
        if (IX(ii1) ~= ii)
            mindc(ii2) = dist_class(IX(ii1)2);
        else
            mindc(ii2) = dist_class(ii2);
        end
    end
    
    class1_num = size(find(mindc(:2) == 1)1);%最近点中,第1类的个数
    class2_num = size(find(mindc(:2) == 2)1);
    class3_num = size(find(mindc(:2) == 3)1);
    if (max([class1_numclass2_numclass3_num]) == class1_num)
        test_set(i5) = 1;
        fprintf(‘#%d test example: class is 1\n‘i);
    elseif (max([class1_numclass2_numclass3_num]) == class2_num)
        test_set(i5) = 2;
        fprintf(‘#%d test example: class is 2\n‘i);
    else
        test_set(i5) = 3;
        fprintf(‘#%d test example: class is 3\n‘i);
    end
end
accurateNum = 0;
    for i = 1:size(class1)
        if (test_set(i5) == class(i))
            accurateNum = accurateNum + 1;
        end
    end
    accuracy = accurateNum / size(class1);
    fprintf(‘KNN算法:%f\n‘accuracy);

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

     文件       2708  2010-03-22 14:39  knn\iris.csv

     文件       1897  2011-04-14 23:52  knn\KNN.m

     目录          0  2012-06-02 21:14  knn

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

                 4605                    3


评论

共有 条评论