统计模式识别学习笔记(十二)

k d kd kd

当样本容量过大时,最邻近点的搜索往往要花费的大量的时间。为了提升搜索效率,下面介绍 k d kd kd 树的方法。

k d kd kd 树是一种二叉树。它是对 k k k 维空间中的实例点进行存储以便进行快速搜索的树形数据结构。构造 k d kd kd 树相当于不断用垂直于坐标轴的超平面将 k k k 维空间切分,构成一系列的 k k k 维超矩形区域。

下面我来用浅白的语言简述一下这种方法。

现在假设你有一个训练集 X = { x 1 , . . . , x n } , x i = { x i 1 , . . . , x i k } X=\lbrace x_1,...,x_n \rbrace,x_i=\lbrace x_i^1,...,x_i^k \rbrace X={ x1,...,xn},xi={ xi1,...,xik} 。其中, i ∈ 1 , . . . , n i \in 1,...,n i1,...,n 代表数据集中的每一个数据 x i x_i xi 是一个 k k k 维的向量。

  • 首先,设立根结点。将空间一分为二,依据是 x i x_i xi 的第一个分量,也被称为第一个深度信息。我们将, x 1 , . . . , x n x_1,...,x_n x1,...,xn 按照其第一个分量从小到大排列,取其中位数,并以此为切分点,确立超平面,并将当前超矩形区域分为左右两个超矩形区域。
  • 其次,设立子结点。对上一步深度为 j j j 的结点进行 m o d + 1 mod+1 mod+1 操作,作为本次 x i x_i xi 分量的选取。还是选取中位数,然后再依照切分点确立超平面。将各自的超矩形区域再次划分。
  • 重复上述工作。
  • 直到无法再进行分割,或分出的区域内仅存在一个或满足目标任务的样本个数。

至此 k d kd kd 树的构建到此结束了。而 k d kd kd 树的搜索也比较简单,这里就不再赘述了。相信各位也一定有了自己的想法并开始用程序语言来构建自己的算法了。

本篇内容较少,欢迎各位读者前往前一篇统计模式识别学习笔记(十一)继续阅读。

猜你喜欢

转载自blog.csdn.net/qq_44868018/article/details/108547372
今日推荐