pairwise_distances_argmin_min#

sklearn.metrics.pairwise_distances_argmin_min(X, Y, *, axis=1, metric='euclidean', metric_kwargs=None)[source]#

计算一个点与一组点之间的最小距离。

此函数为X中的每一行计算Y中距离最近的行的索引(根据指定的距离)。同时返回最小距离。

这在很大程度上等同于调用

(pairwise_distances(X, Y=Y, metric=metric).argmin(axis=axis),
 pairwise_distances(X, Y=Y, metric=metric).min(axis=axis))

但使用的内存少得多,并且对于大型数组更快。

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

包含点的数组。

Y{类数组, 稀疏矩阵} 形状为 (n_samples_Y, n_features)

包含点的数组。

axis整型, 默认值=1

计算argmin和距离的轴。

metric字符串或可调用对象, 默认值='euclidean'

用于距离计算的度量。可以使用scikit-learn或scipy.spatial.distance中的任何度量。

如果 metric 是一个可调用函数,它将对每对实例(行)进行调用并记录结果值。可调用对象应将两个数组作为输入,并返回一个值,表示它们之间的距离。这适用于 Scipy 的度量,但效率低于将度量名称作为字符串传递。

不支持距离矩阵。

metric 的有效值为

  • 来自 scikit-learn: [‘cityblock’, ‘cosine’, ‘euclidean’, ‘l1’, ‘l2’, ‘manhattan’, ‘nan_euclidean’]

  • 来自 scipy.spatial.distance: [‘braycurtis’, ‘canberra’, ‘chebyshev’, ‘correlation’, ‘dice’, ‘hamming’, ‘jaccard’, ‘kulsinski’, ‘mahalanobis’, ‘minkowski’, ‘rogerstanimoto’, ‘russellrao’, ‘seuclidean’, ‘sokalmichener’, ‘sokalsneath’, ‘sqeuclidean’, ‘yule’]

有关这些度量的详细信息,请参阅 scipy.spatial.distance 的文档。

注意

'kulsinski' 已从 SciPy 1.9 中弃用,并将在 SciPy 1.11 中移除。

注意

'matching' 已在 SciPy 1.9 中移除(请改用 'hamming')。

metric_kwargs字典, 默认值=None

要传递给指定度量函数的关键字参数。

返回:
argminndarray

Y[argmin[i], :] 是 Y 中最接近 X[i, :] 的行。

distancesndarray

最小距离数组。distances[i] 是 X 中第 i 行与 Y 中第 argmin[i] 行之间的距离。

另请参阅

pairwise_distances

X 和 Y 的每一对样本之间的距离。

pairwise_distances_argmin

pairwise_distances_argmin_min 相同,但只返回 argmin。

示例

>>> from sklearn.metrics.pairwise import pairwise_distances_argmin_min
>>> X = [[0, 0, 0], [1, 1, 1]]
>>> Y = [[1, 0, 0], [1, 1, 0]]
>>> argmin, distances = pairwise_distances_argmin_min(X, Y)
>>> argmin
array([0, 1])
>>> distances
array([1., 1.])