数据分类器构建

  • 一、目的和要求

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

  • 二、内容

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);

四、实验结果

第一次运行

第二次运行

第三次运行

第四次运行

五、结果分析与实验体会

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值