gpt4 book ai didi

python - 如何从 kNeighborsClassifier 中查找前 n 个匹配项?

转载 作者:行者123 更新时间:2023-11-30 09:28:34 24 4
gpt4 key购买 nike

我正在尝试从一组带有标签的样本向量中搜索向量。我需要找到最佳的 n 匹配项。我为此使用 kNeighborsClassifier

nbrs = KNeighborsClassifier(n_neighbors=2, algorithm='ball_tree', metric='euclidean').fit(train_data_array, train_label)
yp = nbrs.predict(xt)

但问题是它只返回前 1 个结果。我认为根据欧几里得距离,我可以获得前 n 个匹配项,但我不确定如何提取该信息。

最佳答案

有一个kneighbors() method in KNeighborsClassifier您可以使用它。

它将返回训练数据的索引(您在 fit() 中使用的),以及最接近您在其中提供的点的距离。

示例:

from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
iris = datasets.load_iris()
X = iris.data
y = iris.target

clf = KNeighborsClassifier()
clf.fit(X, y)

# here I am taking a single point only
distances, indices = clf.kneighbors(X[[0]], n_neighbors=2)

print(distances, indices)

#Output: array([[0., 0.]]), array([[17, 0]])

这里第一个输出是距离,第二个输出是最接近 X[[0]]X 索引

关于python - 如何从 kNeighborsClassifier 中查找前 n 个匹配项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51380812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com