数据分类器构建

  • 一、目的和要求

要求完成分类器的代码实现

  • 二、内容

KNN分类方法的实现

  • 三、实验步骤

X=standdata;

[n,m]=size(X);

x=rand(1,m-1);

%%x和X每一行向量的距离:

for i=1:n

    %%x和X每一行向量的距离

    dis(i)=sqrt((x-X(i,1:m-1))*(x-X(i,1:m-1))');

end

%%求出和x最近的k行

k=5;

[b,id]=sort(dis);

ind=id(1:k);

%%统计这k行的标签出现次数

L=unique(X(:,m));%%去掉重复数查看m有哪些数

P=zeros(length(L),1);

for i=1:length(L)

    for j=1:k

        if(X(ind(j),m)==L(i))

            P(i)=P(i)+1;

        end

    end

end

LL=X(ind,m);

%%找出出现次数最多的标签,另处输出等于该值

idd=find(P==max(P));

y=L(idd);

四、实验结果

第一次运行数据分类器构建_第1张图片

第二次运行

数据分类器构建_第2张图片

第三次运行

数据分类器构建_第3张图片

第四次运行

数据分类器构建_第4张图片

五、结果分析与实验体会

由于其中x=rand(1,m-1);是随机值,得到结果中,LL和p还有y都会随机改变,其中我们的y值在[1,3]之间随机。以此代码针对不同分类的数据分出多个类。

  KNN即K-Nearest Neighbor,是数据挖掘中一种最简单的分类方法,即要判断某一个样本属于已知样本种类中的哪一类时,通过计算找出所有样本中与测试样本最近或者最相似的K个样本,统计这K个样本中哪一种类最多则把测试样本归位该类。如何衡量两个样本的相似度?可以用向量的p-范数来定义。

你可能感兴趣的:(matlab,matlab,分类)