球树

球树类似于KD树,球树的分割块是超球体。建树流程如下:

1.先构建一个超球体,这个超球体是可以包含所有样本的最小球体;

2.从球中选择一个离球的中心最远的点,然后选择第二个点离第一个点最远,将球中所有的点分配到离这两个聚类中心最近的一个上,然后就散每个聚类的中心,以及聚类能够包含它所有数据点所需的最小半径。这样我们得到了两个子超球体,和KD树里面的左右子树对应。

3.对于这两个子超球体,递归执行步骤2,最终得到了一个球树。

可以看出KD树和球树类似,主要区别在于球树得到的是节点样本组成的最小超球体,而KD树得到的是节点样本组成的超矩形体,这个超球体要比对应的KD树的超矩形体小,这样在做最近邻搜索的时候,可以避免一些无谓的搜索。

你可能感兴趣的:(机器学习基础)