k近邻法(k-nearest neighbor,k-NN)

输入:实例的特征向量,对应于特征空间的点;输出:实例的类别,可以取多类。

分类时,根据其k个最近邻的训练实例的类别,通过多数表决等方式进行预测。

实例类别已定,不具有显式的学习过程。k近邻法实际上利用训练数据集对特征

向量空间进行划分,并作为其分类的"模型"。

三个基本要素:k值的选择、距离度量及分类决策规则。

 

KDtree

实现k近邻法时,主要考虑的问题是如何对训练数据进行快速k近邻搜索。

k近邻法最简单的实现方法是线性扫描。这时要计算输入实例与每一个训练实例的距离。

为了提高k近邻搜索的效率,可以考虑使用特殊的结构存储训练数据,以减少计算距离的次数。

介绍kd树.

 

构造kd树

有数据集T={(2,3),(5,4),(9,6),(4,7),(8,1),(7,2)}

根结点对应包含数据集T的矩形,

个数据点的x(1)坐标的中位数是7,

将空间分为左、右两个子矩形

分为两个子矩形,

分为两个子矩形,如此递归

所得KD树如下:

 

搜索kd树


给定一个目标点,搜索其最近邻。

首先找到包含目标点的叶结点;然后从该叶结点出发,依次回退到父结点;

不断查找与目标点最邻近的结点,当确定不可能存在更近的结点时终止。

这样搜索就被限制在空间的局部区域上,效率大为提高。

 

包含目标点的叶结点对应包含目标点的最小超矩形区域。

以此叶结点的实例点作为当前最近点。

目标点的最近邻一定在以目标点为中心并通过当前最近点的超球体的内部

然后返回当前结点的父结点,若父结点的另一子结点的超矩形区域与超球体相交,

那么在相交的区域内寻找与目标点更近的实例点

如果存在这样的点,将此点作为新的当前最近点

算法转到更上一级的父结点,继续上述过程。

如果父结点的另一子结点的超矩形区域与超球体不相交,或不存在比当前最近点更近的点,则停止搜索。

 

 

 

 

 

 

 

 

 

统计学习方法笔记(KNN)的更多相关文章

  1. 统计学习方法笔记 -- KNN

    K近邻法(K-nearest neighbor,k-NN),这里只讨论基于knn的分类问题,1968年由Cover和Hart提出,属于判别模型 K近邻法不具有显式的学习过程,算法比较简单,每次分类都是 ...

  2. 统计学习方法:KNN

    作者:桂. 时间:2017-04-19  21:20:09 链接:http://www.cnblogs.com/xingshansi/p/6736385.html 声明:欢迎被转载,不过记得注明出处哦 ...

  3. 统计学习方法笔记--EM算法--三硬币例子补充

    本文,意在说明<统计学习方法>第九章EM算法的三硬币例子,公式(9.5-9.6如何而来) 下面是(公式9.5-9.8)的说明, 本人水平有限,怀着分享学习的态度发表此文,欢迎大家批评,交流 ...

  4. 李航-统计学习方法-笔记-3:KNN

    KNN算法 基本模型:给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的k个实例.这k个实例的多数属于某个类,就把输入实例分为这个类. KNN没有显式的学习过程. KNN使用的模型 ...

  5. 统计学习方法 三 kNN

    KNN (一)KNN概念: K近邻算法是一种回归和分类算法,这主要讨论其分类概念: K近邻模型三要素: 1,距离: 2,K值的选择: K值选择过小:模型过复杂,近似误差减小,估计误差上升,出现过拟合 ...

  6. 统计学习方法笔记 Logistic regression

    logistic distribution 设X是连续随机变量,X服从逻辑斯谛分布是指X具有下列分布函数和密度函数: 式中,μ为位置参数,γ>0为形状参数. 密度函数是脉冲函数 分布函数是一条S ...

  7. 统计学习方法笔记 -- Boosting方法

    AdaBoost算法 基本思想是,对于一个复杂的问题,单独用一个分类算法判断比较困难,那么我们就用一组分类器来进行综合判断,得到结果,"三个臭皮匠顶一个诸葛亮" 专业的说法, 强可 ...

  8. 《统计学习方法》极简笔记P5:决策树公式推导

    <统计学习方法>极简笔记P2:感知机数学推导 <统计学习方法>极简笔记P3:k-NN数学推导 <统计学习方法>极简笔记P4:朴素贝叶斯公式推导

  9. 《统计学习方法》笔记九 EM算法及其推广

    本系列笔记内容参考来源为李航<统计学习方法> EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计或极大后验概率估计.迭代由 (1)E步:求期望 (2)M步:求极大 组成,称 ...

随机推荐

  1. My Package

    一.新建一文件夹,名称为MyBase,存放Java的基本类. 二.在MyBase包中创建基本类Base.java. package MyBase; public class Base { public ...

  2. 关闭和开启oracle

    1.使用sqlplus 启动和关闭数据库. 答:使用sqlplus以sysdba的身份登录数据库 因为我的数据库是启动状态,所以我就先演示数据库的关闭 数据库的关闭使用语句shutdown immed ...

  3. linux gcc头文件搜索路径

    #include <>: 直接到系统指定的某些目录中去找某些头文件.#include "": 先到源文件所在文件夹去找,然后再到系统指定的某些目录中去找某些头文件 1. ...

  4. No.2__C#

    几经波折——多事之秋的第二周 这周的事情还有点多, 应该已经是上周了确切的说.总的来说,上周的数据结构的学习进行的很顺利.最让自己惊喜的是,居然很快就派上了用场,这也坚定了我学习的信念,极大地鼓舞了我 ...

  5. 数据库连接池dbcp基本配置

    DBCP(DataBase connection pool),数据库连接池.是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件.单独使用dbcp需要2个包: com ...

  6. delphi Tab Item Badge Value 消息数标记

    https://community.embarcadero.com/blogs?view=entry&id=9074 unit TabBadgeFrm; interface uses Syst ...

  7. Python自动化 【第七篇】:Python基础-面向对象高级语法、异常处理、Scoket开发基础

    本节内容: 1.     面向对象高级语法部分 1.1   静态方法.类方法.属性方法 1.2   类的特殊方法 1.3   反射 2.     异常处理 3.     Socket开发基础 1.   ...

  8. 基于WDF的PCI/PCIe接口卡Windows驱动程序(4)- 驱动程序代码(源文件)

    原文出处:http://www.cnblogs.com/jacklu/p/4687325.html 本篇文章将对PCIe驱动程序的源文件代码作详细解释与说明.整个WDF驱动程序工程共包含4个头文件(已 ...

  9. JStrom的zk数据

    /jstorm/masterlock 用于LeaderSelector的锁. /jstorm/master get /jstorm/master localhost.localdomain:7627 ...

  10. HTML <!DOCTYPE> Declaration

    <!DOCTYPE html><html><head><title>Title of the document</title></he ...