设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 462|回复: 0
收起左侧

k临近算法通俗易懂版

[复制链接]
发表于 2019-3-6 16:57:19 | 显示全部楼层 |阅读模式



k近邻法(k-nearest neighbor, k-NN)是1967年由Cover T和Hart P提出的一种基本分类与回归方法。


它的工作原理是:存在一个样本数据集合,也称作为训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一个数据与所属分类的对应关系。输入没有标签的新数据后,将新的数据的每个特征与样本几种数据对应的特征进行比较,然后算法提取样本最相似数据(最近邻)的分类标签。


举个简单的例子,我们可以使用k-近邻算法分类一个电影是爱情片还是动作片。




                               
登录/注册后可看大图

距离度量

我们已经知道k-近邻算法根据特征比较,然后提取样本集中特征最相似数据(最邻近)的分类标签。那么,如何进行比较呢?比如,我们怎么判断红色圆点标记的电影所属的类别呢?



                               
登录/注册后可看大图

我们可以从散点图大致推断,这个红色圆点标记的电影可能属于动作片,因为距离已知的那两个动作片的圆点更近。


k-近邻算法用什么方法进行判断呢?没错,就是距离度量。这个电影分类的例子有2个特征,也就是在2维实数向量空间,可以使用我们高中学过的两点距离公式计算距离



                               
登录/注册后可看大图


通过计算,我们可以得到如下结果:

(101,20)->动作片(108,5)的距离约为16.55

(101,20)->动作片(115,8)的距离约为18.44

(101,20)->爱情片(5,89)的距离约为118.22

(101,20)->爱情片(1,101)的距离约为128.69


k-近邻算法大致步骤:


1. 计算已知类别数据集中的点与当前点之间的距离;

2. 按照距离递增次序排序;

3. 选取与当前点距离最小的k个点;

4. 确定前k个点所在类别的出现频率;

5. 返回前k个点所出现频率最高的类别作为当前点的预测分类。


优点


简单好用,容易理解,精度高,理论成熟,既可以用来做分类也可以用来做回归;

可用于数值型数据和离散型数据;

训练时间复杂度为O(n);无数据输入假定;

对异常值不敏感


缺点


计算复杂性高;空间复杂性高;

样本不平衡问题(即有些类别的样本数量很多,而其它样本的数量很少);

一般数值很大的时候不用这个,计算量太大。但是单个样本又不能太少,否则容易发生误分。

最大的缺点是无法给出数据的内在含义


东方瑞通成立于1998年,总部在北京,分别在上海、广州、天津、武汉、济南、深圳、成都、重庆、杭州和西安建立了直营分部,全国拥有超过40间专业培训教室、40多位专职讲师及180多位签约讲师;作为国内企业级IT高级技术&管理培训的领军机构,为数千家企业客户提供员工外派(公开课)和团体定制培训服务,累计培训专业人才数十万名。
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-4-16 16:05 , Processed in 0.053960 second(s), 8 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表