K-d树进行最近邻搜索的过程演示和详细分解
In this tutorial we will go over how to use a KdTree for finding the K nearest neighbors of a specific point or location, and then we will also go over how to find all neighbors within some radius specified by the user (in this case random).
本文将演示我们如何用KdTree去寻找查找特定点或位置的k个最近邻,然后我们还将介绍如何查找用户指定半径内的所有邻(在本例中是随机的)。
K-d树的组织
A k-d tree, or k-dimensional tree, is a data structure used in computer science for organizing some number of points in a space with k dimensions. It is a binary search tree with other constraints imposed on it. K-d trees are very useful for range and nearest neighbor searches. Each level of a k-d tree splits all children along a specific dimension, using a hyperplane that is perpendicular to the corresponding axis. At the root of the tree all children will be split based on the first dimension (i.e. if the first dimension coordinate is less than the root it will be in the left-sub tree and if it is greater than the root it will obviously be in the right sub-tree). Each level down in the tree divides on the next dimension, returning to the first dimension once all others have been exhausted. They most efficient way to build a k-d tree is to use a partition method like the one Quick Sort uses to place the median point at the root and everything with a smaller one dimensional value to the left and larger to the right. You then repeat this procedu

本文深入探讨了K-d树的组织结构及其在最近邻搜索中的应用。通过实例展示了如何构建K-d树,并详细解释了如何进行深度优先搜索来找到给定点的最近邻。内容包括K-d树的层次划分方式以及搜索过程的逐步拆解。
2419

被折叠的 条评论
为什么被折叠?



