kneighbors_graph#

sklearn.neighbors.kneighbors_graph(X, n_neighbors, *, mode='connectivity', metric='minkowski', p=2, metric_params=None, include_self=False, n_jobs=None)[source]#

计算 X 中点的 k-近邻(加权)图。

用户指南中阅读更多内容。

参数:
X{类数组, 稀疏矩阵},形状为 (n_samples, n_features)

样本数据。

n_neighborsint

每个样本的邻居数量。

mode{'connectivity', 'distance'}, 默认='connectivity'

返回矩阵的类型:'connectivity'将返回带有1和0的连通矩阵,而'distance'将根据给定度量返回邻居之间的距离。

metricstr, 默认='minkowski'

用于距离计算的度量。默认为“minkowski”,当 p = 2 时,它表示标准欧几里得距离。有关有效度量值,请参见scipy.spatial.distance的文档以及distance_metrics中列出的度量。

pfloat, 默认=2

闵可夫斯基度量的幂参数。当 p = 1 时,等同于使用曼哈顿距离 (l1);当 p = 2 时,等同于使用欧几里得距离 (l2)。对于任意 p,使用闵可夫斯基距离 (l_p)。此参数预期为正值。

metric_paramsdict, 默认=None

度量函数的其他关键字参数。

include_selfbool 或 'auto', 默认=False

是否将每个样本标记为它自己的最近邻。如果为 'auto',则在 mode='connectivity' 时使用 True,在 mode='distance' 时使用 False。

n_jobsint, 默认=None

邻居搜索要运行的并行作业数。None 表示 1,除非在 joblib.parallel_backend 上下文。 -1 表示使用所有处理器。更多详细信息请参见术语表

返回:
A形状为 (n_samples, n_samples) 的稀疏矩阵

图,其中 A[i, j] 被赋为连接 i 到 j 的边的权重。该矩阵为 CSR 格式。

另请参阅

radius_neighbors_graph

计算 X 中点的(加权)邻居图。

示例

>>> X = [[0], [3], [1]]
>>> from sklearn.neighbors import kneighbors_graph
>>> A = kneighbors_graph(X, 2, mode='connectivity', include_self=True)
>>> A.toarray()
array([[1., 0., 1.],
       [0., 1., 1.],
       [1., 0., 1.]])