我有一个包含300张图片的数据库,我为每个图片都提取了一个BOVW。从查询图像开始(从同一词典中提取出query_BOVW),我需要在训练数据集中找到相似的图像。

我在训练集kd_tree = KDTree(training)上使用了Sklearn KDTree,然后使用kd_tree.query(query_vector)从查询向量计算了距离。最后一个函数将要返回的最近邻居的数量作为第二个参数,但是我寻求的是为欧氏距离设置一个阈值,并基于该阈值具有不同的最近邻居数量。

我查看了文档,但没有找到任何相关信息。我找错了可能没有道理的东西吗?

谢谢您的帮助。

最佳答案

documentation中,可以使用方法query_radius

查询给定半径内的邻居:

import numpy as np
np.random.seed(0)
X = np.random.random((10, 3))  # 10 points in 3 dimensions
tree = KDTree(X, leaf_size=2)
print(tree.query_radius(X[0], r=0.3, count_only=True))
ind = tree.query_radius(X[0], r=0.3) # indices of neighbors within distance 0.3


这项功能适用于sklearn版本19.1

关于python - SKlearn:KDTree如何基于阈值返回最近的邻居(Python),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49650149/

10-13 08:29