首页人工智能技术资讯正文

kd树案例:最近领域的搜索和查找点

更新时间:2022-04-26 来源:黑马程序员 浏览量:

假设标记为星星的点是 test point, 绿色的点是找到的近似点,在回溯过程中,需要用到一个队列,存储需要回溯的点,在判断其他子节点空间中是否有可能有距离查询点更近的数据点时,做法是以查询点为圆心,以当前的最近距离为半径画圆,这个圆称为候选超球(candidate hypersphere),如果圆与回溯点的轴相交,则需要将轴另一边的节点都放到回溯队列里面来。

1650955994550_kd树案例.png

样本集{(2,3),(5,4), (9,6), (4,7), (8,1), (7,2)}。

查找点(2.1,3.1)

查找点


在(7,2)点测试到达(5,4),在(5,4)点测试到达(2,3),然后search_path中的结点为<(7,2),(5,4), (2,3)>,从search_path中取出(2,3)作为当前最佳结点nearest, dist为0.141;

然后回溯至(5,4),以(2.1,3.1)为圆心,以dist=0.141为半径画一个圆,并不和超平面y=4相交,如上图,所以不必跳到结点(5,4)的右子空间去搜索,因为右子空间中不可能有更近样本点了。

于是再回溯至(7,2),同理,以(2.1,3.1)为圆心,以dist=0.141为半径画一个圆并不和超平面x=7相交,所以也不用跳到结点(7,2)的右子空间去搜索。

至此,search_path为空,结束整个搜索,返回nearest(2,3)作为(2.1,3.1)的最近邻点,最近距离为0.141。




猜你喜欢:

OpenCV图像处理:基础模块和高层次模块

为什么CNN对像素级别的分类很难?

人工智能之人脸识别综合应用与实践

SVM的推导,特性?多分类怎么处理?

黑马程序员AI人工智能开发师培训

分享到:
在线咨询 我要报名
和我们在线交谈!