3-4 k近邻算法 kd树的原理与改进

本文介绍了kd树的构造过程,通过坐标轴平行的分割线将空间划分为多个子空间。在搜索阶段,kd树采用优化策略减少不必要的数据点搜索,通过目标点与分割线的距离判断是否需要搜索对侧区域。此外,文章还讨论了如何利用kd树升级到K近邻算法,每次找到最近邻后将其标记,并更新距离。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

构造

KD树的构造过程实际上是用许多与坐标轴平行的分割线按照一定规划将一个空间划分成多个子空间。

其中,每个分割线都经过一个样本点,每个区域有一个样本点。
将上图这样的划分转换成的kd树是:

其中,圆形结点代表分割线上的样本,方形结点代表区域中的样本。

可以发现,方形结点所在的区域是由它的路径上的圆形结点所在的分割线分割出来的。
例如:
D所在的区域是经过A、B所在的分割线切割得到的。
E所在的区域是经过A、C所在的分割线切割得到的。

搜索

KD的树的优化策略是省去对大部分数据点的搜索,从而减少搜索的计算量

假设目标点落在与D相同的区域,那么应该在以下这些点中搜索来寻找最近点:

所在的位置 个数
1 与目标点同区域的点 D 1
2 目标点所在区域的分界线上的点 A、B lo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值