机器学习 KNN算法_0 丐版(matlab实现)
文章目录
- 思路
- 效果
- 代码
- mian
- knn
思路
1、计算已有数据集A中每个个体与新个体B的距离
2、根据距离由近到远排序
3、根据提供的k值返回距离B最近的k个个体编号与类别
效果

代码
mian
A=[2 2 01.9 1.9 02.8 2.8 05 5 14 6 16 5 1];
B=[3 3];
k=3;
[Neighbors, Classify] = KNN(A,B,k);
knn
function [Neighbors, Classify] = KNN(A,B,k)
%A:前nums-1列为属性,最后一列为类别
%B:只有1行,nums-1列
%k:近邻数量
%采用欧式距离
%Neighbors:距离最近的邻居编号
%Classify:距离最近的邻居对应的类别
size_A=size(A);
Temp_A=A(:,1:size_A(2)-1);
Dis_A_B=zeros(size_A(1),2);
Dis_A_B(:,1)=1:size_A(1);
Dis_A_B(:,2)=sqrt(sum((Temp_A-B).^2,2));
Sorted_Dis_A_B=sortrows(Dis_A_B,2);
Neighbors=Sorted_Dis_A_B(1:k,1);
Classify=A(Neighbors,size_A(2));
end
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
