kd树

  • Kd树是一种对K维空间中的实例点进行存储以便对其进行快速检索的树形数据结构。
  • Kd树是二叉树,表示对k维空间的一个划分。构造kd树相当于不断地用垂直于坐标轴的超平面将k维空间切分,构成一系列的k维超矩形区域。Kd树的每一个结点对应于一个k维超矩形区域。
  • 构造kd树的方法如下:

     构造根结点,使得根结点对应于k维空间中包含所有实例点的超矩形区域;

     通过下面的递归方法,不断地对k维空间进行切分,生成子结点。

     在超矩形区域(结点)上选择一个坐标轴和在此坐标轴上的一个切分点,确定一个超平面,这个超平面通过选定的且分店并垂直于选定的坐标轴,将当前超矩形区域且分为左右两个子区域(子结点);这时,实例被分到两个字区域。

     这个过程直到子区域内没有实例时终止(终止时的结点为叶节点)。在此过程中,将实例保存在相应的结点上。

    通常,依次选择坐标轴对空间划分,选择训练实例点在选定坐标轴上的中位数为切分点,这样得到的kd树是平衡的。

猜你喜欢

转载自blog.csdn.net/zrh_csdn/article/details/80878845