ball-tree
为了改进kd-tree沿着笛卡尔坐标进行划分的低效率,ball tree将使用超球面而不是超平面来划分空间。虽然在构建数据结构的花费上大过于kd-tree,但是在高维甚至很高维的数据上都表现的很高效。ball tree的节点保存圆心和半径,节点每次分裂都生成两个小的超球空间,不断分裂直至节点包含的数据点数量小于一定值,如下图所示。
(from:https://blog.csdn.net/skyline0623/article/details/8154911)
不同层次的圆被用不同的风格画出。树中的每个结点对应一个圆,结点的数字表示该区域包含的观测点数,但不一定就是图中该区域囊括的点数,因为有重叠的情况,并且一个观测点只能属于一个区域。