回溯法排序树怎么画_kd tree(k-dimensional树的简称)

本文介绍了kd树的构建过程,首先通过计算各维度方差选取最大方差的特征作为分割轴,然后以中位数作为分割点创建左右子树。在搜索过程中,通过回溯法和画圆判断是否需要继续在子空间中搜索。当数据点数量远大于2的k次方时,kd树在高维空间效率下降,需平衡查找效率与精度。

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

575987fd104c4c4295354719812ea011.png

kd tree建立

  • 计算各个维度方差最大的那一个。方差大说明沿该轴方向上的数据分散的越开。下图所示。
  • 选择该特征的中位数作为分割点,小于该数的为左子树,大于的为右子树。这里用中位数是为了让左子树和右子树的数据量一直,便于二分查找。
  • 然后用上述方法进行判断其他维度数据,直到所有数据都位于节点上为止。

8e38b02ca870347befd39ae87d71c929.png

kd树搜索过程:

9acac75faa9b7e8e32ad0161a588bc23.png

我们来查找点(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为半径画一个圆,并不和超平

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值