SKlearn:KDTree如何基于阈值返回最近邻(Python)

2024-09-20 22:24:37 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我查阅了文件,但没有找到任何关于这方面的资料。我是不是找错了找一些没意义的东西?在

谢谢你的帮助。在


Tags: 数据图像数据库tree距离字典training图片
2条回答

您想在这里使用query_radius。在

query_radius(self, X, r, count_only = False):

query the tree for neighbors within a radius r

...

以上链接中的示例:

import numpy as np
np.random.seed(0)
X = np.random.random((10, 3))  # 10 points in 3 dimensions
tree = BinaryTree(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)  
print(ind)  # indices of neighbors within distance 0.3

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

相关问题 更多 >

    热门问题