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個數組之間的距離。 |
另見:
執行與此函數相同的計算,但返回一個距離矩陣的塊生成器,以限制內存使用。
paired_distances
計算兩個數組的對應元素之間的距離