sklearn.metrics.pairwise_distances?

sklearn.metrics.pairwise_distances(X, Y=None, metric='euclidean', *, n_jobs=None, force_all_finite=True, **kwds)

源碼

根據向量數組X和可選的Y計算距離矩陣。

此方法采用向量數組或距離矩陣,然后返回距離矩陣。如果輸入是向量數組,則計算距離。如果輸入是距離矩陣,則將其返回。

此方法提供了一種安全的方法,可以將距離矩陣作為輸入,同時保持與采用矢量數組的許多其他算法的兼容性。

如果給出了Y(默認值為None),則返回的矩陣是X和Y每個數組之間的成對距離。

指標的有效值為:

  • 來自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的文檔。這些度量標準不支持稀疏矩陣輸入。

請注意,在使用 ‘cityblock’, ‘cosine’和‘euclidean’(有效的scipy.spatial.distance指標)的情況下,將使用scikit-learn實現,它實現得更快,并且支持稀疏矩陣(除了‘cityblock’)。有關scikit-learn中指標的詳細說明,請參見sklearn.pairwise.distance_metrics函數的 __ doc __。

用戶指南中閱讀更多內容。

參數 說明
X array [n_samples_a, n_samples_a] if metric == “precomputed”, or, [n_samples_a, n_features] otherwise
樣本之間的成對距離數組或特征數組。
Y array [n_samples_b, n_features], optional
可選的第二特征數組。僅當度量!=“ precomputed”時才允許。
metric string, or callable
計算特征陣列中實例之間的距離時使用的度量。 如果metric是字符串,則它必須是scipy.spatial.distance.pdist為其metric參數允許的選項之一,或者是pairwise.PAIRWISE_DISTANCE_FUNCTIONS中列出的度量。如果度量是“precomputed”,則假定X為距離矩陣。或者,如果metric是可調用的函數,則在每對實例(行)上調用metric,并記錄結果值。可調用對象應將X的兩個數組作為輸入,并返回一個指示它們之間距離的值。
n_jobs int or None, optional (default=None)
用于計算的作業數。通過將成對矩陣分解為n_jobs個偶數切片并并行計算它們,可以工作。
除非在joblib.parallel_backend上下文中,否則None表示1。-1表示使用所有處理器。有關更多詳細信息,請參見詞匯表
force_all_finite boolean or ‘allow-nan’, (default=True)
是否在數組中的np.inf,np.nan,pd.NA上引發錯誤。可能是:
- True:強制將數組的所有值限制為有限。
- False:接受數組中的np.inf,np.nan,pd.NA。
- ‘allow-nan’:僅接受數組中的np.nan和pd.NA值。 值不能是無限的。
0.22版中的新功能:force_all_finite接受字符串“ allow-nan”。
在版本0.23中更改:接受pd.NA并將其轉換為np.nan
**kwds optional keyword parameters
任何其他參數都直接傳遞給距離函數。如果使用scipy.spatial.distance度量,則參數仍取決于度量。有關用法示例,請參見scipy文檔。
返回值 說明
D array [n_samples_a, n_samples_a] or [n_samples_a, n_samples_b]
如果Y為None,則距離矩陣D使得D_ {i,j}是給定矩陣X的第i個向量和第j個向量之間的距離。如果Y不為None,則D_ {i,j}是X的第i個數組和Y的第j個數組之間的距離。

另見:

pairwise_distances_chunked

執行與此函數相同的計算,但返回一個距離矩陣的塊生成器,以限制內存使用。

paired_distances

計算兩個數組的對應元素之間的距離

sklearn.metrics.pairwise_distances應用示例?