尝试使用KD树创建KNN搜索。我可以很好地构建KD树(至少我认为我可以!)。我的问题是我正在搜索一个点列表中每个点的最近的2个邻居。
那么,是否有方法可以使用KD树查找一个点的K个最近邻居,即使该点实际上在树中,还是我需要为每个点构建一个单独的KD树,排除我要搜索的那个点?
我的实现语言是C++,但我更希望得到一个算法或一般的帮助,谢谢!
谢谢,[隐藏人名]
回答:
如果你想在你的树中找到K个精确的最近邻居,只需查询树中的K+1个邻居(显然,因为第一个最近邻居将是你的查询点)。
尝试使用KD树创建KNN搜索。我可以很好地构建KD树(至少我认为我可以!)。我的问题是我正在搜索一个点列表中每个点的最近的2个邻居。
那么,是否有方法可以使用KD树查找一个点的K个最近邻居,即使该点实际上在树中,还是我需要为每个点构建一个单独的KD树,排除我要搜索的那个点?
我的实现语言是C++,但我更希望得到一个算法或一般的帮助,谢谢!
谢谢,[隐藏人名]
回答:
如果你想在你的树中找到K个精确的最近邻居,只需查询树中的K+1个邻居(显然,因为第一个最近邻居将是你的查询点)。