KDTree简单理解

KDTree作为一个树的结构,通常用来做高维的分割。在分割成为树的时候,保证下一层节点的比较位如果小于当前的比较位,则向左生长,否则向右生长。所谓的比较位就是当前层数%总的维度,例如三维坐标,第一层就是x,第二层就是y,第三层就是z。直接看图


图中每一层的比较位用加粗表示了,看第一层,比较位是第一位,也就是3,(2,3,7)中2>3,所以像左生长,(4,3,4)中4>3所以向右生长。

到了第二层,这里只看(2,3,7),他的比较位是y也就是3了,那么(2,1,3)中1<3所以像左生长,(2,,4,5)中4>3所以想向右生长。

至于KDTree是怎么训练出来能够做到尽量平衡的,就是通过传统的决策树的算法,算出信息熵决定的。如果捡到一个就分一个会很可能极度不平衡,搜索的时候可能会搜索非常深,但是即使用了决策树的算法,也不可能是完全平衡的,只是一个最优解而已。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值