K近邻算法详解

K近邻算法详解

近朱者赤,近墨者黑。

  • KNN简介
  • KNN原理
  • KNN的优缺点
  • KNN的性能问题
  • kd树

KNN简介

K最近邻(k-Nearest Neighbor,KNN),是一种常用于分类的算法,是有成熟理论支撑的、较为简单的经典机器学习算法之一。该方法的基本思路是:如果一个待分类样本在特征空间中的k个最相似(即特征空间中K近邻)的样本中的大多数属于某一个类别,则该样本也属于这个类别,即近朱者赤,近墨者黑。显然,对当前待分类样本的分类,需要大量已知分类的样本的支持,因此KNN是一种有监督学习算法。

KNN原理

先举一个简单的例子:

这里写图片描述

上图中,所有样本可以使用一个二维向量表征。图中,蓝色方形样本和红色三角形样本为已知分类样本。若使用KNN对图中绿色圆形未知分类样本进行分类,当K=3时,其三近邻中有2个红色三角形样本和1个蓝色方形样本,因此预测该待分类样本为红色三角形样本;当K=5时,其三近邻中有3个红色三角形样本和2个蓝色方形样本,因此预测该待分类样本为蓝色方形样本;

综上,KNN算法有以下几个要素:


  • 数据集
  • 样本的向量表示
  • 样本间距离的计算方法
  • K值的选取

数据集:即必须存在一个样本数据集,也称作训练集,样本数据集中每个样本是有标签的,即我们知道样本数据集中每一个样本的分类。当获取到一个没有标签的待分类样本时,将待分类样本与样本数据集中的每一个样本进行比较,找到与当前样本最为相近的K个样本,并获取这K歌样本的标签,最后,选择这k个样本标签中中出现次数最多的分类,作为待分类样本的分类。因此,K近邻算法可行的基础是,存在数据集,并且是有标签数据集!

样本的向量表示:即不管是当前已知的样本数据集,还是将来可能出现的待分类样本,都必须可以用向量的形式加以表征。样本的向量表现形式,构筑了问题的解空间,即囊括了样本所有可能出现的情况。向量的每一个维度,刻画样本的一个特征,必须是量化的,可比较的。

样本间距离的计算方法:既然要找到待分类样本在当前样本数据集中与自己距离最近的K个邻居,必然就要确定样本间的距离计算方法。样本间距离的计算方法的构建,与样本的向量表示方法有关,当建立样本的向量表示方法时,必须考虑其是否便于样本

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值