↑ 点击上方【计算机视觉联盟】关注我们

K近邻算法采用测量不同特征值之间的距离方法进行分类。


K-近邻算法工作原理:

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

一般来说,我们只选择样本数据集中前k个最相似的数据k通常不大于20的整数

最后选择k个最相似数据中出现次数最多的分类作为新数据的分类


下边通过例子来理解k最邻近算法。

比如通过电影中打斗的镜头次数和亲吻的镜头次数作为特征对电影进行分类。有人统计过很多电影的打斗镜头和接吻镜头,下图显示了6部电影的打斗和接吻镜头数(问号表示未看电影)。通过这些特征使用KNN来对一步未看过的电影进行分类。

使用打斗和接吻镜头数分类电影

下表展示了每部电影的打斗镜头数和接吻镜头数:

根据上表打斗镜头数和接吻镜头数,我们计算出未知电影和样本集中电影的距离(具体计算方法在后续博文Python实现电影分类时会跟新),如表2-2所示。

由表2-2表示,我们可以找到k个距离最近的电影。假如k=3,则三个最靠近的电影依次是He's Not Really into Dudes、Beautiful Woman 和California Man。k-近邻算法按照距离最近的三部电影的类型,决定未知电影的类型,这三部电影都是爱情片,因此断定未知电影是爱情片。

此文讲解了K近邻算法的工作原理,后续博文会更新Python实现K近邻算法。

此文讲解了K近邻算法的工作原理,后续博文会更新Python实现K近邻算法。

往期回顾

● 亲身经历2019年校招8个大厂心得体会,纯干货分享(大疆、百度...)

● 带你详细了解机器视觉竞赛—ILSVRC竞赛

● 到底什么是“机器学习”?机器学习有哪些基本概念?(简单易懂)

● 带你自学Python系列(一):变量和简单数据类型(附思维导图)

● 带你自学Python系列(二):Python列表总结-思维导图

● 带你自学Python系列(三):列表遍历(for循环)

● 2018年度最强的30个机器学习项目!

● 斯坦福李飞飞高徒Johnson博士论文: 组成式计算机视觉智能(附195页PDF)

● 134页《深度学习数学基础笔记》(内附电子书下载)

● 【资源】100页机器学习入门完整版,必须收藏!

● 【工作篇】华为武汉长沙地区2020届猎户座寒假实习生招聘

● 一文详解计算机视觉的广泛应用:网络压缩、视觉问答、可视化、风格迁移

公式太多,读不懂? 一文带你领略KNN近邻算法~简单易懂相关推荐

  1. 训练数据太少?过拟合?一文带你领略“数据增长魔法”(上)

    注意:本文是转载博客,如有侵权,请联系删除! 运行环境及其Paddle版本 [下面是我的主页链接] 来AI Studio互粉吧 https://aistudio.baidu.com/aistudio/ ...

  2. 简直不要太硬了!一文带你彻底理解文件系统 | 原力计划

    作者 | cxuann 责编 | 屠敏 所有的应用程序都需要存储和检索信息.进程运行时,它能够在自己的存储空间内存储一定量的信息.然而,存储容量受虚拟地址空间大小的限制.对于一些应用程序来说,存储空间 ...

  3. 简直不要太硬了!一文带你彻底理解文件系统

    这是Java建设者第 79 篇原创长文 所有的应用程序都需要存储和检索信息.进程运行时,它能够在自己的存储空间内存储一定量的信息.然而,存储容量受虚拟地址空间大小的限制.对于一些应用程序来说,存储空间 ...

  4. mysql 中的脏读与幻读_一文带你理解脏读,幻读,不可重复读与mysql的锁,事务隔离机制...

    首先说一下数据库事务的四大特性 1 ACID 事务的四大特性是ACID(不是"酸"....) (1) A:原子性(Atomicity) 原子性指的是事务要么完全执行,要么完全不执行 ...

  5. 一文带你领略人工神经网络激荡70年

    ↑ 点击上方[计算机视觉联盟]关注我们 M-P模型 1943年神经元解剖学家McCulloch和数学天才Pitts发表文章提出神经元的数学描述和结构 神经元遵循"全或无"原则 证明 ...

  6. 一文带你了解人脸检测算法的类型及其工作原理

    在过去的几年里,人脸识别受到了广泛的关注,被认为是图像分析领域最有前途的应用之一.人脸检测可以考虑人脸识别操作的很大一部分.根据其强度将计算资源集中在持有人脸的图像部分.图片中的人脸检测方法很复杂,因 ...

  7. 一文带你领略并发编程的内功心法

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 本篇文章我们来探讨一下并发设计模型. 可以使用不同的并发模 ...

  8. 一文带你领略JS中原型链的精妙设计!

    对于很多前端初学者来说,JavaScript中的原型链理解是一个很难的过程,有工作了好几年还无法理解原型链设计的大有人在,今天小千就来通过例子给大家介绍这个js原型链. 我们想要理解原型链,首先我们先 ...

  9. 一文带你领略虚拟化领域顶级技术会议KVM Forum 2018

    KVM Forum是由Linux基金会组织的高端技术论坛会议,主要为社区各个维护者,开发人员,和用户提供一个讨论Linux虚拟化技术发展趋势以及挑战的交流场所.参会人员都集中在KVM虚拟化相关领域,是 ...

最新文章

  1. hello word 程序 ——简单的spring ioc 学习
  2. linux游戏欢迎界面,制作Linux登录欢迎界面
  3. matlab 小练习,matlab初试牛刀__小练习
  4. PHPExcel设置自动列宽
  5. mysql adodb_关于从MySQL转向ADODB的方法
  6. 启动图一键生成工具_一键即运行!清华团队推出图深度学习工具包CogDL v0.1
  7. android一些若干回调测试
  8. Java基础知识盘点(二)- 集合篇
  9. vector使用中可能出现的一个陷阱
  10. 无论如何,你该在大城市再坚持下
  11. 网线分类及如何选择?
  12. 总方差公式(方差分解公式)证明
  13. Java Graphics2D的使用
  14. 从药价高昂引申的思考
  15. 星号下三角形python答案_Python练习题:星号三角形
  16. 到微软下载VS2008
  17. 怎么写功能测试报告,分享专业的功能报告模板
  18. 运行adb 命令提示more than one device/emulator
  19. 视频编辑器GoPro Quik for mac中文版
  20. Winows注册minio为服务器

热门文章

  1. java roundingmode.UP,即使明确设置,DecimalFormat也使用不正确的RoundingMode
  2. excel导入导出工具类_Hutool Java工具类库导出Excel,超级简单
  3. c语言程序设计案例教程肖利群,C语言程序设计案例教程
  4. 上学是穷人的出路吗?
  5. async和await理解代码
  6. redis设置key的有效期
  7. 搭建大数据开发环境-Hadoop篇
  8. 20171227/20171027
  9. java网络编程TCP传输—流操作—拿到源后的写入动作
  10. VS编辑代码时使用正则表达式去掉行号