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{array-like, sparse matrix} of shape (n_samples_X, n_features)

包含点的数组。

Y{array-like, sparse matrix} of shape (n_samples_Y, n_features)

包含点的数组。

axisint, default=1

计算argmin和距离的轴。

metricstr or callable, default=’euclidean’

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

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

不支持距离矩阵。

度量的有效值包括:

  • 来自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_kwargsdict, default=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.])