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
计算两个数组的对应元素之间的距离