kd树和球树

kd树

kd树是一种二叉树形数据结构和一种查找算法的结合,kd树有好几种,但是思想相同实际应用起来的差异不大,可以只了解其中一种即可。它常用于解决最近邻搜索问题,它能提升k近邻的效率。暂时不需要知道它的详细步骤,会应用即可。

kd树的构建:它的大致流程是依次选择方差大的维度进行划分,为了使构建的树比较平衡会选择中位数进行划分(有的kd树不用中位数进行划分),让中位数作为每一维的节点(它是非叶子节点),这样就形成了二叉树形结构。注意每个非叶子节点都代表一个超平面的一部分用于将数据进行划分,每个叶子节点代表的数据可能不只一个,叶子节点可以理解成根据非叶子节点划分出来的区域,而叶子节点中的数据就是这个区域中的数据。

使用kd树进行查找最近邻:比如要查找2个近邻,它的思想是先找一个最近邻,找到后将它排除后再找第二个。如何寻找第一个近邻可以看b站收藏夹。有空再看。

球树

球树是一种二叉树形数据结构和一种查找算法的结合。暂时不需要知道它的详细步骤,会应用即可。

kd树和球树对比:1、kd树构建一般比球树快。

2、球树比kd树查找快,尤其对于高维数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值