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应用示例