成對距離最小值索引與最小值#
- sklearn.metrics.pairwise_distances_argmin_min(X, Y, *, axis=1, metric='euclidean', metric_kwargs=None)[來源]#
計算一個點和一組點之間的最小距離。
此函數會計算 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) 的類陣列、稀疏矩陣
包含點的陣列。
- axisint,預設值為 1
計算最小值索引和距離的軸。
- metric字串或可呼叫物件,預設值為「euclidean」
用於距離計算的度量。可以使用 scikit-learn 或 scipy.spatial.distance 的任何度量。
如果 metric 是一個可呼叫的函數,它會被應用於每對實例(列),並記錄結果值。該可呼叫函數應接收兩個陣列作為輸入,並回傳一個表示它們之間距離的值。這適用於 Scipy 的 metrics,但效率不如將 metric 名稱以字串形式傳遞。
不支援距離矩陣。
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']
有關這些 metric 的詳細資訊,請參閱 scipy.spatial.distance 的文件。
注意
'kulsinski'
在 SciPy 1.9 中已被棄用,並將在 SciPy 1.11 中移除。注意
'matching'
已在 SciPy 1.9 中移除(請改用'hamming'
)。- metric_kwargsdict,預設值為 None
要傳遞給指定 metric 函數的關鍵字參數。
- 回傳值:
- argminndarray
Y[argmin[i], :] 是 Y 中最接近 X[i, :] 的列。
- distancesndarray
最小距離的陣列。
distances[i]
是 X 中第 i 列與 Y 中第 argmin[i] 列之間的距離。
範例
>>> 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.])