pairwise_kernels#

sklearn.metrics.pairwise.pairwise_kernels(X, Y=None, metric='linear', *, filter_params=False, n_jobs=None, **kwds)#

计算数组 X 和可选数组 Y 之间的核。

该方法接受向量数组或核矩阵,并返回一个核矩阵。如果输入是向量数组,则计算核。如果输入是核矩阵,则直接返回。

该方法提供了一种安全的方式来将核矩阵作为输入,同时保持与许多其他接受向量数组的算法的兼容性。

如果给定 Y(默认值为 None),则返回的矩阵是 X 和 Y 中数组之间的成对核。

metric 的有效值为:

[‘additive_chi2’, ‘chi2’, ‘linear’, ‘poly’, ‘polynomial’, ‘rbf’, ‘laplacian’, ‘sigmoid’, ‘cosine’]

更多信息请参阅 用户指南

Parameters:
X{array-like, sparse matrix} 形状为 (n_samples_X, n_samples_X) 或 (n_samples_X, n_features)

样本之间的成对核数组,或特征数组。 如果 metric == “precomputed”,则数组的形状应为 (n_samples_X, n_samples_X),否则为 (n_samples_X, n_features)。

Y{array-like, sparse matrix} 形状为 (n_samples_Y, n_features),默认=None

仅当 X 的形状为 (n_samples_X, n_features) 时的第二个特征数组。

metricstr 或 callable,默认=”linear”

计算特征数组中实例之间核时使用的度量。如果 metric 是字符串,则必须是 pairwise.PAIRWISE_KERNEL_FUNCTIONS 中的度量之一。 如果 metric 是 “precomputed”,则假定 X 是核矩阵。 或者,如果 metric 是可调用函数,则它会在每对实例(行)上调用,并记录返回值。可调用函数应接受 X 中的两行作为输入,并返回相应的核值作为单个数字。这意味着不允许使用 sklearn.metrics.pairwise 中的可调用函数,因为它们操作矩阵,而不是单个样本。请改用标识核的字符串。

filter_paramsbool,默认=False

是否过滤无效参数。

n_jobsint,默认=None

用于计算的作业数。通过将成对矩阵分解为 n_jobs 个均匀切片并在并行中计算它们来实现。

None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有处理器。有关更多详细信息,请参阅 Glossary

**kwds可选关键字参数

任何进一步的参数都直接传递给核函数。

Returns:
Kndarray 形状为 (n_samples_X, n_samples_X) 或 (n_samples_X, n_samples_Y)

一个核矩阵 K,使得 K_{i, j} 是给定矩阵 X 中第 i 和第 j 个向量之间的核,如果 Y 为 None。 如果 Y 不为 None,则 K_{i, j} 是 X 中的第 i 个数组和 Y 中的第 j 个数组之间的核。

Notes

如果 metric 是 ‘precomputed’,则忽略 Y 并返回 X。

Examples

>>> from sklearn.metrics.pairwise import pairwise_kernels
>>> X = [[0, 0, 0], [1, 1, 1]]
>>> Y = [[1, 0, 0], [1, 1, 0]]
>>> pairwise_kernels(X, Y, metric='linear')
array([[0., 0.],
       [1., 2.]])