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. SQL Server 2008 收缩日志 清空删除大日志文件 转载

    SQL Server 2008 收缩日志 清空删除大日志文件 由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消:(SQL2005)Ba ...

  2. Unity3D 双摇杆 c# JoyStick 实现自己的双摇杆

    转载请声明: http://www.cnblogs.com/ADaii/p/3859520.html Untiy3D 官方摇杆脚本只能完成一个摇杆,要实现双摇杆比较费劲 现在我吧我废了一通宵的结果共享 ...

  3. centos 6.3 安装 svn

    1. 按照http://ostechnix.wordpress.com/2013/04/30/install-subversion-server-in-centos-6-4-rhel-6-4-scie ...

  4. aspx中如何绑定llistbox数据列表

    DataTable dt = new DataTable(); dt = goodsbll.Get_prodtolist(_fatherpeoid,_sonpeoid).Tables[]; ) { f ...

  5. JavaScript(Iframe、window.open、window.showModalDialog)父窗口与子窗口之间的操作

    一.Iframe 篇 公共部分 //父对象得到子窗口的值 //ObjectID是窗口标识,ContentID是元素ID function GetValue(ObjectID,ContentID) { ...

  6. Qlik 函数说明

    集合表达式 包括 标识符 标识符 说明 1 表示应用程序中所有记录的完整集合,而不考虑选择的任何选择项.考虑维度 $ 表示当前选择项的记录.因此,集合表达式 {$} 与不陈述集合表达式的意义等同. $ ...

  7. AS

    1.修改注释模板: “File“->“Settings”    File and Code Templates     然后选中Includes tab下面的File Header. 2.代码提 ...

  8. Windows程序设计(第五版)学习:第四章 文本输出

    第四章 文本输出 1,客户区:整个应用程序窗口中没有被标题栏.边框.菜单栏.工具栏.状态栏和滚动条占用的区域.简而言之,客户区就是窗口中程序可以在上面绘制并向用户传达可视化信息的区域.   2,大多数 ...

  9. APP弱网测试

    APP弱网测试   App弱网测试方法,常用工具有使用fiddler进行网络模拟,也可以使用Network Emulator Toolkit控制模拟网络,相对来说Network Emulator To ...

  10. IconFont字体制作

    1. 第一步.准备svg格式图片 2. 登陆http://iconfont.cn/网站,上传图标. 3. 选中需要制作成iconfont的图标. 4. 将选中的图标转储为项目 5. 下载至本地. 6. ...