zoukankan      html  css  js  c++  java
  • Ball tree

    KD 树的缺点:

    1. kd 树适合实例数远大于向量维度的情况,当实例数和向量维度相当时,查询复杂度几乎是线性的

    2. kd 树划分的区域是一个个矩形其余,而在查找最近节点时是以球形区域判断的,导致查找效率有损

    Ball tree改进了区域划分方法,直接用球形区域去划分

    Ball tree 构建

    1. 开始,找到所有节点的中心点,这个中心点就是根节点,此时所有的节点都是指向该节点。(这个中心点是怎么确定的?)

    2. 递归的进行下面步骤:

      a. 找到离当前节点最远的节点作为该节点的左子节点

      b. 找到离左子节点最远的节点作为右子节点

      c. 指向当前节点的所有节点,如果离左子节点近就指向左子节点,离右子节点近就指向左子节点

      d. 最后,记录每个中心节点的位置和包含其所有所属节点的最小半径

     每次划分的时间复杂度是 O(n)

    Ball tree 检索

    和kd树一样

  • 相关阅读:
    [CLYZ2017]day8
    [CLYZ2017]day12
    [bzoj1503][NOI2004]郁闷的出纳员
    [CLYZ2017]day18
    [CLYZ2017]day11
    [CLYZ2017]day17
    在DLL中获取服务器路径
    SPSecurity.RunWithElevatedPrivileges 拒绝访问
    prototype1.4.0(转载)
    删除多表数据
  • 原文地址:https://www.cnblogs.com/xumaomao/p/15026952.html
Copyright © 2011-2022 走看看