pairwise_kernels#

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

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

该方法采用一个载体数组或一个核矩阵,并返回一个核矩阵。如果输入是一个载体数组,则会计算核。如果输入是内核矩阵,则返回它。

该方法提供了一种将核矩阵作为输入的安全方法,同时保持与许多其他采用载体数组的算法的兼容性。

如果给定Y(默认为无),那么返回的矩阵是X和Y的数组之间的成对核。

度量的有效值为:

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

阅读更多的 User Guide .

参数:
X形状(n_samples_X,n_samples_X)的{类数组,稀疏矩阵}或 (n_samples_X,n_features)

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

Y{array-like, sparse matrix} of shape (n_samples_Y, n_features), default=None

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

metric字符串或可调用,默认=“线性”

计算特征数组中实例之间的内核时使用的指标。如果指标是字符串,则它必须是中的指标之一 pairwise.PAIRWISE_KERNEL_FUNCTIONS .如果指标是“预先计算的”,则假设X是核矩阵。或者,如果metric是一个可调用的函数,则会对每对实例(行)调用它并记录结果值。可调用对象应该从X中获取两行作为输入,并以单个数字的形式返回相应的内核值。这意味着从 sklearn.metrics.pairwise 不允许这样做,因为它们对矩阵而不是单个样本进行操作。使用标识内核的字符串。

filter_params布尔,默认=假

是否过滤无效参数。

n_jobsint,默认=无

用于计算的作业数。这是通过将成对矩阵分解为n_jobs偶数切片并使用多线程计算它们来实现的。

None 意思是1,除非在a中 joblib.parallel_backend 上下文 -1 意味着使用所有处理器。看到 Glossary 了解更多详细信息。

**kwds可选关键字参数

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

返回:
K形状的nd数组(n_samples_X,n_samples_X)或(n_samples_X,n_samples_Y)

核矩阵K,使得K_{i,j}是给定矩阵X的第i个和第j个载体之间的核,如果Y为无。如果Y不为无,则K_{i,j}是X的第i个数组和Y的第j个数组之间的核。

注意到

如果指标是“预先计算的”,则忽略Y并返回X。

示例

>>> 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.]])