如果你之前没有学习过K最近邻算法,那今天几张图,让你明白什么是K最近邻算法。

先来一张图,请分辨它是什么水果

很多同学不假思索,直接回答:“菠萝”!!!

仔细看看同学们,这是菠萝么?那再看下边这这张图。

这两个水果又是什么呢?

这就是菠萝与凤梨的故事,下边即将用菠萝和凤梨,给大家讲述怎么用一个算法来知道这是个什么水果的过程,也就是什么是K最近邻算法。

(给非吃货同学们补充一个生活小常识,菠萝的叶子有刺,凤梨没有。菠萝的凹槽处是黄色的,而凤梨的凹槽处是绿色的,以后千万不要买错哦!!!)

上边这张图中,我们定义了两个维度的特征:

  • 一个是叶子是否有刺

  • 一个是凹槽处是否的颜色

问:一个新的水果来了,我们怎么判断他是什么水果呢?

方法如下:

(看这个神秘水果与哪个水果的举例近。同等举例,看离它最近的水果中,哪个水果多)

根据上图中,我们判断,这个神秘水果那就是菠萝啦,原因是离它近的水果中菠萝比凤梨多。

相信到这里,大家都已经明白了什么是K最近邻算法了吧!

假设我们有3中不知名的水果

我们现在根据其大小和颜色的特征,把它们放入图表中

那如我们如何判断他们有多像呢?

具体的计算,可以使用毕达哥拉斯公式

那现在来计算水果A和水果B之间的距离

最后的计算结果为1

那么同理,如果要让你去做一个推荐系统,我们可以把人的用户画像放在一个表格里

如果我们给其中一个人推荐他可能感兴趣的书、电影、美食等,就可以看一下离他最近距离的这些人都在做什么,然后就套用下边的公式就可以了

无论多少维度,直接套用就可以了。

图说算法,是不是非常的简单就理解了KNN。

最新文章

  1. jsexcel导出插件
  2. 部署到IIS报错:HTTP错误500.19,错误代码0x800700d
  3. C# 属性和索引
  4. php方法 隐藏手机号中间四位
  5. jQuery插件:用于获取元素自身的HTML内容
  6. Android开发了解——AIDL
  7. helloServlet
  8. How to Type(dp)
  9. MAC使用小技巧(一)
  10. mvc+linq+EF对数据表的查删改
  11. MongoDB大数据高并发读写性能测试报告
  12. MySQL,Oracle,PostgreSQL 数据库web维护客户端管理工具
  13. Android + HTML5 混合开发
  14. python 标准模块 string
  15. 洛谷P3168 [CQOI2015]任务查询系统
  16. MySQL常用命令汇总(偏向运维管理)
  17. java中的BigDecimal和String的相互转换,int和String的类型转换,Integer类和String相互转换
  18. 【C++ Primer | 15】虚继承
  19. 1125 Chain the Ropes (25 分)
  20. echarts实现环形图

热门文章

  1. tomcat部署应用仅需ip和port访问
  2. Mac使用自带的屏幕共享实现VNC连接KVM时需要输入密码的问题解决
  3. lykchat+zabbix实现微信告警
  4. 点集转线python最优代码
  5. 【liunx】使用xshell连接虚拟机上的CentOS 7,使用xhell连接本地虚拟机上的Ubuntu, 获取本地虚拟机中CentOS 7的IP地址,获取本地虚拟机中Ubuntu 的IP地址,Ubuntu开启22端口
  6. oracle直方图
  7. 《Windows核心编程》第十一章——线程池
  8. [Git] 技术的热门度曲线
  9. coursera课程Text Retrieval and Search Engines之Week 1 Overview
  10. 页面元素定位 XPath 简介