zoukankan      html  css  js  c++  java
  • 图说十大数据挖掘算法(一)K最近邻算法

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

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

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

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

    这两个水果又是什么呢?

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

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

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

    • 一个是叶子是否有刺

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

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

    方法如下:

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

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

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

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

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

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

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

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

     最后的计算结果为1

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

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

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

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

  • 相关阅读:
    java fastjson 设置全局输出name最小化
    Spring MVC同一方法返回JSON/XML格式
    使用Vuejs编写单js组件
    iview使用vue-i18n实现国际化
    WPF usercontrol 自定义依赖属性
    正在尝试解析依赖项“MvvmLightLibs (≥ 5.2.0.0)”。 “MvvmLightLibs”已拥有为“CommonServiceLocator”定义的依赖项
    记第一次的破解经历
    HTML5实现手机QQ表情功能
    TypeScript 基本语法
    WebStorm下使用TypeScript
  • 原文地址:https://www.cnblogs.com/hadoop2015/p/10199563.html
Copyright © 2011-2022 走看看