K近邻模型原理(二)

k近邻的最简单实现方法是线性扫描,有时也称为蛮力实现,其通过计算新的输入实例与每一个训练实例的距离,然后找出最小距离的k个实例点,紧接着根据决策规则进行预测.当训练集很小时,这种方法显得有效;而当样本量很大时,计算量也随之增大,这将非常耗时.

为了提高k近邻的搜索效率,可以考虑将训练数据使用某种结构进行存储起来,进而减少计算距离的次数,这样的方法有:kd树,球形树,BBF树,MVP树等.下面只介绍其中的kd树.

一. kd树

kd树是二叉树,表示对k维空间的一个划分 (也就是说这里的k是指维数). 其实现过程分为两大步骤:构造和搜索.

1. 构造kd树

过程大致描述为: 构造根结点(根结点对应的是k维空间中包含所有实例点的超矩形区域),在超矩形区域上选择一个坐标轴和此坐标轴上的一个切分点,通过一个超平面(该超平面通过选定的切分点并垂直于选定的坐标轴)将当前超矩形区域切分为左右两个子区域(也称为子结点), 这时,实例被分到两个子区域.不断地重复切分过程直到子区域内没有实例时终止,终止时的结点称为叶结点.

2. 搜索kd树

给定一个目标点,搜索其最近邻,其大致过程描述为:
首先找到包含目标点的叶结点(即包含目标点的最小超矩形区域),然后从该叶结点出发,依次退回到父结点,不断地查找与目标点最邻近的结点,当确定不可能存在更近的结点时终止,这样就可以将搜索限制在局部区域上,进而提高搜索效率.

对于搜索k近邻的过程,大致可以总结为以下几步:
1)寻找包含目标结点的叶结点
  从根结点出发,若目标点当前维的坐标小于切分点的坐标,则移动到左子结点,否则移动到右子结点.直到向下访问到叶结点为止.
2)选择好的叶结点作为当前最近点
3)从叶结点向根结点退回,在每个结点进行以下操作:
 a. 如果该结点中包含比当前最近点距离目标点更近的实例点时,以该实例点作为当前最近点.
 b. 检查另一子结点对应的区域是否与"以目标点为球心,以目标点与当前最近点的距离为半径"的球体相交.若相交,则移动到另一子结点,搜索更近的实例点;若不相交,则继续向根结点退回.
4)当退回到根结点时,第一轮搜索结束,最终选择的当前最近点即为最近邻点,并将当前最近点从根结点中移动到近邻点集合中.
5)通过以上搜索得到第一近邻点,重复上述步骤k-1次,最终将得到k个近邻点.

2. 预测

如果是分类问题,归纳为k个近邻点中最多数的那个类别;如果是回归问题,用k个最近邻点输出的平均值作为预测值.

参考:
李航博士著<统计学习方法>

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

推荐阅读更多精彩内容

  • k 近邻法 k 近邻算法 k 近邻模型 k 近邻法的实现:kd 树 搜索 kd 树 k 近邻模型实现 k 近邻模型...
    千与千与阅读 570评论 0 3
  • 一.朴素贝叶斯 1.分类理论 朴素贝叶斯是一种基于贝叶斯定理和特征条件独立性假设的多分类的机器学习方法,所...
    wlj1107阅读 3,092评论 0 5
  • 一、算法原理 k-nearest neighbor,k-NN是一种可以用于多分类和回归的方法。knn是一个很简单...
    owolf阅读 1,194评论 0 0
  • 这是我参加mlhub123组织的书籍共读计划的读书笔记,活动见mlhub第一期读书计划 阅读章节:第三章:k近邻法...
    howie6879阅读 803评论 0 0
  • 在今天才算是真正的失恋吧,难受至极,当知道原因的那一刻起,我就觉得人心难测。失恋后一定不要想自己都原因,要从多方面...
    梭光阅读 438评论 0 0