统计学习方法 | k近邻法

01 分类需求

K近邻法(KNN)是一种基本的分类与回归方法

分类这种需求,渗透到我们生活的方方面面:

  • 根据学生德智体美成绩,将学生分为几类
  • 根据一个县城的GDP、人口密度等数据,将全国的县城分为多个类别
  • 根据客户的信用、收入、生活习惯将客户分为多个类别
  • ……

分类算法可以帮助我们完成这些繁琐的操作,并根据我们的要求不断修正分类结果。

分类算法其实蛮多的,这里顺着书本顺序,详细讲解KNN算法,再与K-Means、K-Means++算法进行简单对比。

02 KNN算法

k近邻法是这样一个过程:

给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的k个实例,这k个实例的多数属于某个类(多数表决argmax),就把该输入实例分为这个类。

过程其实很好理解,描述成可量化的算法,就是这样的:

KNN是一种懒惰算法,平时不好好学习,考试(对测试样本分类)时才临阵磨枪(临时去找k个近邻)。

懒惰的后果:构造模型很简单,但在对测试样本分类的开销大,因为要扫描全部训练样本并计算距离。

理解算法后,我们来看看k近邻法的优缺点:

优点:易于实现,无需估计参数,无需训练,支持增量学习,能对超多边形的复杂决策空间建模

缺点:计算量较大,分析速度慢(因为要扫描全部训练样本并计算距离)

03 KNN vs K-Means vs K-Means++

开头我们说到,分类算法很多,KNN只是其中一种,下面我们将KNN算法与K-Means、K-Means++进行对比,便于我们更好地理解算法。

KNN
给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的k个实例,这k个实例的多数属于某个类(多数表决argmax),就把该输入实例分为这个类。

K-Means
不断地聚类<-->划分过程
(1)对于一组数据集,任意选取k个点作为质心,将数据集中的点归为离其最近的质心一类,此时数据集被划分为k个类;
(2)对这k个类,重新寻找各类的质心;
(3)根据新产生的质心,按照(1)继续聚类,然后再根据聚类重新计算各类质心,直到质心不再改变,分类完成。

下面的图可以很直观地展示整个分类过程

需要注意的是,此图示展示的K-Means聚类过程, 第一步选取的红蓝两点质心是错的,质心应该是训练数据集中的点,后面的步骤没有问题

K-Means++
与K-Means算法相同,除了第一步初始质心的选择:选择初始质心时并不是随机选择,而是选择尽量相互分离的质心,即,下一个质心点总是离上一个质心点较远的点。

04 KNN三要素

距离度量、k值、分类决策规则,是k近邻法地三要素,下面分别介绍。

距离度量
衡量特征空间中两个实例点的距离,度量方法一边用Lp距离,p取不同值时,分别有不同地名称,常用欧氏距离作为距离度量。

  • Lp距离

  • 欧氏距离(p=2)

  • 曼哈顿距离(p=1)

  • p无穷

不同的距离度量,得到的实例点之间的距离是不同的,下面的图给出了二维空间中,p取不同值时,与原点的Lp距离为1的点的集合图形,可以看到,欧氏距离对应的是圆。

k值

k值得选择,反映了对近似误差与估计误差之间的权衡。

  • 近似误差
    类比于训练误差,关注训练集。近似误差越小,说明模型对训练集的预测越好,但近似误差过小容易出现过拟合,降低模型对于测试集的预测准确性。

  • 估计误差
    类比于测试误差,关注测试集。估计误差越小,说明模型对未知数据预测越好,模型越接近真实模型,过小的近似误差会导致模型过拟合,使得模型对于未知数据的预测变差(估计误差变大)

  • k值过小

    • 近似误差会减小,估计误差会增大
    • 易产生过拟合
    • 噪声敏感:如果邻近的实例点恰好是噪声,预测就会出错。
  • k值过大

    • 可以减少估计误差,但近似误差会增大
    • 极端情况,k=样本点数N,无论输入实例如何,都将被简单归为训练集中最多的类,忽略了大量有用信息

分类决策规则

k近邻法中得分类决策规则,常用多数表决法,当然,为了弱化k值的影响,还可以采用加权表决法。

  • 多数表决

    • 由输入实例的k个邻近的训练实例中的多数类决定输入实例的类
    • 不考虑距离加权影响,每个投票权重都为1
  • 加权表决

    • 由输入实例的k个邻近的训练实例中的多数类加权决定输入实例的类
      -即根据距离的远近,对近邻的投票进行加权,距离越近则权重越大(权重为距离平方的倒数)

为什么要使用多数表决法呢,这里给出多数表决法的直观解释,这个解释我给满分!

05 kd树(二叉树)

了解了k近邻法后,你应该会产生这样的疑惑:

如何对训练数据进行快速k近邻搜索?

难道用线性扫描么?

要计算输入实例与训练集每一个实例的距离,当训练集很大时,计算非常耗时,不可取

面对大数据量的训练集,人们想出了一个好办法提高搜索效率:

使用特殊的数据结构存储训练数据,以减少计算距离的次数,这就是——kd树

下面结合示例,讲解如何构造kd树以及如何搜索kd树

  • 构造kd树

  • 示例-构造kd树

一波操作之后,得到的kd树直观理解长成这样:

  • 搜索kd树

  • 示例-搜索kd树

06 总结

本文详细讲解了KNN算法,并与K-Means、K-Means++算法进行了对比,给出了KNN算法的三要素,最后介绍了便于KNN算法实现的kd树的数据存储结构。

  • k近邻法过程
    对给定的训练实例点和输入实例点,首先确定输入实例点的k个最近邻训练实例点,然后利用这k个训练实例点的类的多数(距离加权)来预测输入实例点的类

  • k近邻法三要素
    距离度量、k值选择、分类决策规则

  • kd树
    一种对k维空间中的实例点进行存储,以便对其进行快速检索的树形数据结构(这里的k维与k近邻的k意义不同)

下期将详细介绍另一种常用的分类方法:朴素贝叶斯,敬请期待~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容