gpt4 book ai didi

python - 与 sklearn.neighbors.NearestNeighbors 的输出混淆

转载 作者:行者123 更新时间:2023-12-01 01:20:28 24 4
gpt4 key购买 nike

这是代码。

from sklearn.neighbors import NearestNeighbors
import numpy as np
X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
nbrs = NearestNeighbors(n_neighbors=2, algorithm='ball_tree').fit(X)
distances, indices = nbrs.kneighbors(X)


>indices

>array([[0, 1],[1, 0],[2, 1],[3, 4],[4, 3],[5, 4]])

>distances

>array([[0. , 1. ],[0. , 1. ],[0. , 1.41421356], [0. , 1. ],[0. , 1. ],[0. , 1.41421356]])

我不太明白“索引”和“距离”的形状。我如何理解这些数字的含义?

最佳答案

实际上非常简单。对于 kneighbors()(此处为 X)输入中的每个数据样本,它将显示 2 个邻居。 (因为您已指定n_neighbors=2indices将为您提供训练数据的索引(此处再次为X)和距离 将为您提供训练数据中相应数据点的距离(索引所指的)。

以单个数据点为例。假设 X[0] 作为第一个查询点,答案将是 indices[0]distances[0]

所以对于X[0]

  • 训练数据中第一个最近邻的索引为 indices[0, 0] = 0,距离为 distances[0, 0] = 0。您可以使用该索引值从训练数据中获取实际的数据样本。

    这是有道理的,因为您使用相同的数据进行训练和测试,因此每个点的第一个最近邻是其本身,距离为 0

  • 第二个最近邻居的索引为 indices[0, 1] = 1,距离为 distances[0, 1] = 1

对于所有其他点也类似。 indicesdistances 中的第一个维度对应于查询点,第二个维度对应于所询问的邻居数量。

关于python - 与 sklearn.neighbors.NearestNeighbors 的输出混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53886289/

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