K-近邻法(K-NN)

原创 2016年06月01日 12:53:35

K-近邻算法的基本思路

  1. 已知NX
  2. 输入未知类别的样本x
  3. 计算xxiX,(i=1,2N)di(x)
  4. 找到xkxk=xi,i=1,2k
  5. xk
  6. 最终判断未知样本属于那一类x

Matlab代码实现

clear all;
close all;
clc;

%X为标记好的样本集,样本为将1至40的数分为2类
%1-20里的10个随机数为一类,21-40里的10个随机数为一类
X = [8,9,17,14,18,12,2,10,16,20,24,34,25,40,31,38,22,21,27,26];
[r,c] = size(X);
%标记好的两类
w1 = [8,9,17,14,18,12,2,10,16,20];
w2 = [24,34,25,40,31,38,22,21,27,26];

%x为要被分类的样本
T = 1:40;%选取类的范围里的随机序列,共40个数
R = randperm(40);%将1至40随机数打乱
x = T(R(1));
disp('随机数x为:');
disp(num2str(x));

%k为邻居数目(k-个近邻)
k = 7;

%计算距离
d = zeros(r,c);
for i = 1:c
    d(i) = abs(X(i)-x);
end

%找出k个最小距离
xk = zeros(1,k);%存储最近邻元
for i = 1:k
    [di ,n] = min(d);%找到最短距离di,以及算在的位置
    xk(i) = X(n);
    d(n) = 40;%为了获得其他的最小值将查询到的最小值赋值为最大值
end

%判断属于的类别
k1 = 0;%属于w1的样本个数
for i = 1:k
    for j = 1:10
        if xk(i) == w1(j)
            k1 = k1+1;
        end
    end
end
k2 = k - k1;%%属于w2的样本个数
if  k2<k1
    disp( '随机数x属于w1类:');
    disp( num2str(w1));
    break;
else
    disp( '随机数x属于w2类:');
    disp( num2str(w2));
    break;
end

结果图

版权声明:本文为博主原创文章,未经博主允许不得转载。如有疑问,欢迎打扰。

k近邻法(K-NN)

K近邻法(k-NN)是一种基本的分类和回归方法。

K近邻法(k-NN)

K近邻法(k-NN)

机器学习算法:k近邻法(k-NN)

分类与回归算法,多分类。 三个基本要素:K值的选择,距离度量,分类决策规则。 1 k近邻算法(分类) 最近邻算法:k=1的k近邻法。即对于输入的实例点x(特征向量),最近邻法将训练数据集中与x最邻近...

C++实现的简单k近邻算法(K-Nearest-Neighbour,K-NN)

K近邻算法(K-Nearest Neighbor,K-NN)的学习和理解 前一段时间学习了K近邻算法,对K近邻算法有了一个初步的了解,也存在一定的问题,下面我来简单介绍一下K近邻算法。...

一文搞懂k近邻(k-NN)算法(一)

原文链接 一文搞懂k近邻(k-NN)算法(一) 前几天和德川一起在学习会上讲解了k-NN算法,这里进行总结一下,力争用最 通俗的语言讲解以便更多同学的理解。 ...
  • AMDS123
  • AMDS123
  • 2017年03月25日 22:06
  • 6895

k最近邻(k-nn)

简短清晰的介绍k最近邻

k-近邻算法(k-NN)及其Python实现

k-近邻算法(k-NN)及其Python实现 算法思想:   给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(K个邻居), 这K个实例的多数属于某个类,就把该输入实例...

MachineLearning— (KNN)k Nearest Neighbor之最近邻法原理举例理解(一)

K最近邻,K近邻法(k-nearest neighbor)是机器学习当中较为简单理解的一种基本分类与回归方法,KNN输入的是实例的特征向量,也就是特征空间上的点;输出的是其对应的类别标签,KNN的训练...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:K-近邻法(K-NN)
举报原因:
原因补充:

(最多只允许输入30个字)