ML之kNN:k最近邻kNN算法的简介、应用、经典案例之详细攻略(一)-阿里云开发者社区

开发者社区> 一个处女座的程序猿> 正文

ML之kNN:k最近邻kNN算法的简介、应用、经典案例之详细攻略(一)

简介: ML之kNN:k最近邻kNN算法的简介、应用、经典案例之详细攻略
+关注继续查看

目录


kNN算法的简介


1、kNN思路过程


1.1、k的意义


1.2、kNN求最近距离案例解释原理—通过实际案例,探究kNN思路过程


2、K 近邻算法的三要素


k最近邻kNN算法的应用


1、kNN代码解读


k最近邻kNN算法的经典案例


1、基础案例




kNN算法的简介


     邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。


     kNN算法的核心思想:如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。


该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 kNN方法在类别决策时,只与极少量的相邻样本有关。

由于kNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,kNN方法较其他方法更为适合。

image.png


     kNN算法不仅可以用于分类,还可以用于回归。通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。如下图是kNN算法中,k等于不同值时的算法分类结果。

     简单来说,kNN可以看成:有那么一堆你已经知道分类的数据,然后当一个新数据进入的时候,就开始跟训练数据里的每个点求距离,然后选择离这个训练数据最近的k个点,看看这几个点属于什么类型,然后用少数服从多数的原则,给新数据归类。


1、kNN思路过程


1.1、k的意义


image.png



1.2、kNN求最近距离案例解释原理—通过实际案例,探究kNN思路过程


  共有22图片→label属于[0,21],每一个label对应一个长度距离,最后预测encodings中,一张图片中的两个目标


image.png

knn_clf.kneighbors())

(array([[0.30532235, 0.31116033],

      [0.32661427, 0.33672689],

      [0.23773344, 0.32330168],

      [0.23773344, 0.31498658],

      [0.33672689, 0.33821827],

      [0.38318684, 0.40261368],

      [0.36961207, 0.37032072],

      [0.30532235, 0.32875857],

      [0.31116033, 0.31498658],

      [0.34639613, 0.37008633],

      [0.34639613, 0.38417308],

      [0.38043224, 0.40495343],

      [0.37008633, 0.38417308],

      [0.36410526, 0.38557585],

      [0.40495343, 0.42797409],

      [0.36410526, 0.40118199],

      [0.31723113, 0.340506  ],

      [0.37033616, 0.37823567],

      [0.32446263, 0.33810974],

      [0.31723113, 0.32446263],

      [0.33810974, 0.37878755],

      [0.340506  , 0.3755613 ]]),

array([[ 7,  8],

      [ 0,  4],

      [ 3,  8],

      [ 2,  8],

      [ 1,  3],

      [ 1,  8],

      [ 4,  7],

      [ 0,  8],

      [ 0,  3],

      [10, 12],

      [ 9, 12],

      [ 9, 14],

      [ 9, 10],

      [15,  9],

      [11, 10],

      [13, 12],

      [19, 21],

      [19, 21],

      [19, 20],

      [16, 18],

      [18, 16],

      [16, 19]], dtype=int64))

knn_clf.kneighbors(encodings, n_neighbors=1)

(array([[0.33233257],[0.31491284]]),

array([[20],[12]], dtype=int64))

 


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
网上各种短网址算法应用的初步详细汇总
看过新浪的短连接服务,发现后面主要有6个字符串组成,于是第一个想到的就是原来公司写的一个游戏激活码规则,也就是下面的算法2,26个大写字母 26小写字母,10个数字,随机生成6个然后插入数据库对应一个id,短连接跳转的时候,根据字符串查询到对应id,即可实现相应的跳转!不过2的62次方,不知...
2121 0
DL之ANN/DNN: 人工神经网络ANN/DNN深度神经网络算法的简介、应用、经典案例之详细攻略
DL之ANN/DNN: 人工神经网络ANN/DNN深度神经网络算法的简介、应用、经典案例之详细攻略
23 0
转:JavaScript事件冒泡简介及应用
(本文转载自别处) JavaScript事件冒泡简介及应用   一、什么是事件冒泡 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。
681 0
YOLO 人脸识别算法以及应用 (1)
第四周 特殊应用:人脸识别和神经风格转换(Special applications: Face recognition &Neural style transfer) 4.
5814 0
一致性哈希算法应用与分析
  一致性哈希算法主要使用在分布式数据存储系统中,按照一定的策略将数据尽可能均匀分布到所有的存储节点上去,使得系统具有良好的负载均衡性能和扩展性。感觉一致性哈希与数据结构中的“循环队列”还是有一点联系的。
749 0
任务调度:时间轮算法经典案例解析及应用实现
平时大家的工作中应该会遇到较多需要在某个时间点执行某个任务,比如对运维来说,定时数据库的备份,日志和监控信息的抓取;比如业务系统,某个时间点给某个人群用户发放优惠券,甚至从操作系统角度,人机交互进程、视频播放的实时进程、批处理的后台进程等进程间的调度。。。 所以如何将这些任务高效、精准的调度?是任务调度系统中最重要的命题,当然在业务系统中一个完善的任务调度系统是很复杂的,需要具备能调度、可视化管理、过程可追溯、结果可分析、持久化、高可用等特性,这篇文章主要讨论任务调度逻辑,其余的内容我们后面文章探讨。
68 0
EL:集成学习(Ensemble Learning)的概念讲解、问题应用、算法分类、关键步骤、代码实现等相关配图详细攻略
EL:集成学习(Ensemble Learning)的概念讲解、问题应用、算法分类、关键步骤、代码实现等相关配图详细攻略
8 0
+关注
一个处女座的程序猿
国内互联网圈知名博主、人工智能领域优秀创作者,全球最大中文IT社区博客专家、CSDN开发者联盟生态成员、中国开源社区专家、华为云社区专家、51CTO社区专家、Python社区专家等,曾受邀采访和评审十多次。仅在国内的CSDN平台,博客文章浏览量超过2500万,拥有超过57万的粉丝。
1701
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载