输入:已经构造的kd树,目标点x;

输出:x的最近邻

1在kd树中找出包含目标点x的叶节点:从根结点出发,递归地向下访问kd树。若目标点x当前维的坐标小于切分点的坐标,则移动到左叶子结点,否则移动到右叶子结点。直到子节点为叶节点为止。

2以此叶节点为“当前最近点”

3递归地向上回退,在每个结点进行以下操作:

a.如果该结点保存的实例点比当前最近点距离目标点更近,则以该实例点为“当前最近点”

b.当前最近点一定存在于该结点一个子结点对应的区域。检查该子结点的父结点的另一子结点对应的区域是否有更近的点。具体来说,检查另一子结点对应的区域是否与以目标点为球心,以目标点与“当前最近点”间的距离为半径的超球体相交。

如果相交,可能在另一子结点对应的区域内存在距离目标点更近的点,移动到另一个子结点。接着,递归地进行最近邻搜索;

如果不想交,向上回退。

4当回退到根结点使,搜索结束,最后的“当前最近点”即为x的最近邻点。

利用kd树实现最近邻搜索相关推荐

  1. python实现kd树以及最近邻查找算法

    python实现kd树以及最近邻查找算法 一.kd树简介 二.kd树生成 1.确定切分域 2.确定数据域 3.理解递归树 4.python实现递归树代码 三.kd树上的最近邻查找算法 1.生成搜索路径 ...

  2. 利用kd树进行平面内最近点搜索

    要求: 对平面内每一个点都找到离它最近的点.通常想法是knn,那么由于是对n个点求,直接算的话就是n平方. 我们利用kd树来搜索,那么复杂度就变为了nlogn,甚至说由于a与b距离最小等价于b与a最小 ...

  3. 机器学习 KD树_递归搜索(matlab实现)

    文章目录 思路 效果 代码 mian Kd_Tree_Create recursive Kd_Tree_Search 思路 第二个版本:链接 KD树基本思路: 建立KD树(Kd_Tree_Create ...

  4. 利用KD树进行异常检测

    什么是KD树 要说KD树,我们得先说一下什么是KNN算法. KNN是k-NearestNeighbor的简称,原理很简单:当你有一堆已经标注好的数据时,你知道哪些是正类,哪些是负类.当新拿到一个没有标 ...

  5. matlab 画星座图,基于k-D树邻近点搜索的彩色星座图绘制[Matlab]

    参考文献 使用matlab生成k-D树 1. 运行代码文件Main_Scatterplot.m 以50个点为样例,进行树的生成.依据参考文献的办法生成k-D树,其效果如下: 从第一列至第十二列的含义分 ...

  6. python机器学习案例系列教程——K最近邻算法(KNN)、kd树

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 K最近邻简介 K最近邻属于一种估值或分类算法,他的解释很容易. 我们假设一个人的优秀成为设定为1.2.3.4.5.6.7.8.9.10 ...

  7. (平衡)kd树的创建与搜索

    普通kd树的创建 算法逻辑 我们采用面向对象编程的方法.通过关键字class创建一个名为kdTree的类,在类kdTree中定义一些属性与方法(可以理解成c语言中的函数). #面向对象编程 class ...

  8. KNN算法与Kd树(转载+代码详细解释)

    最近邻法和k-近邻法 下面图片中只有三种豆,有三个豆是未知的种类,如何判定他们的种类? 提供一种思路,即:未知的豆离哪种豆最近就认为未知豆和该豆是同一种类.由此,我们引出最近邻算法的定义:为了判定未知 ...

  9. K近邻算法的kd树实现

    k近邻算法的介绍 k近邻算法是一种基本的分类和回归方法,这里只实现分类的k近邻算法. k近邻算法的输入为实例的特征向量,对应特征空间的点:输出为实例的类别,可以取多类. k近邻算法不具有显式的学习过程 ...

  10. k-d树+bbf算法的介绍与实现

    最近还是一直在研究SIFT算法,而SIFT特征点匹配是一个比较经典的问题,使用暴力匹配的话确实可以得到结果,但是运行速度较慢.我的计算机处理是i5的二代系列,匹配两张各检测有2000+个SIFT特征点 ...

最新文章

  1. dataframe构建
  2. Parentheses Balance (括号平衡)---栈
  3. C++fast power快速指数的实现(附完整源码)
  4. Mysql数据库中的as和distinct的使用
  5. 方立勋_30天掌握JavaWeb_Servlet事件监听器
  6. 总结之:CentOS 6.4系统裁减详解及装载网卡步骤
  7. jeesite的junit,数据没有插入?
  8. 计算机绘图实训任务书,2012-2cad实训任务书与指导书.pdf
  9. 8.exchange2013实战操作之RMS
  10. (NeurIPS 2019) Gated CRF Loss -一种用于弱监督图像语义分割的新型损失函数
  11. 创建一个TCP服务器端通信程序的步骤
  12. uboot修改传递给内核的cmdline的方法
  13. Java项目:ssm电影院购票系统
  14. 2020腾讯软件测试实习面经
  15. 腾讯会议PPT演讲者模式
  16. spss系列——一元线性回归的分析与预测实例
  17. 网站应用技术名词解释-cookie
  18. MATLAB机械臂建模
  19. 【图形学数学基础】第一章
  20. java个人理财代码_基于JavaEE的个人理财系统

热门文章

  1. typescript-react-webpack4 起手与踩坑
  2. OpenCASCADE Expression Interpreter by Flex Bison
  3. 进入第一个Android应用界面
  4. IIS添加对ashx文件的支持
  5. ORA-01033 ORACLE initialization or shutdow in progress
  6. htmlh1 h6,HTML 5 h1 至 h6 标签 - HTML 参考手册
  7. 计算机外围设备哪两类,计算机原理2010年4月真题(02384)
  8. python 3d绘图kmeans_使用python绘制3d的图形
  9. OpenCV-特征提取与检测(02、Shi-Tomasi角点检测)
  10. Mysql的SQL语句汇总