pairwise_kernels#
- sklearn.metrics.pairwise.pairwise_kernels(X, Y=None, metric='linear', *, filter_params=False, n_jobs=None, **kwds)[源码]#
计算数组 X 和可选数组 Y 之间的核。
此函数接受一个或两个特征数组或一个核矩阵,并返回一个核矩阵。
如果
X是一个形状为 (n_samples_X, n_features) 的特征数组,并且Y为None且metric不是 ‘precomputed’,则返回X自身之间的成对核。Y是一个形状为 (n_samples_Y, n_features) 的特征数组,则返回X和Y之间的成对核。
如果
X是一个形状为 (n_samples_X, n_samples_X) 的核矩阵,则metric应该为 ‘precomputed’。Y将被忽略,X将按原样返回。
此方法提供了一种安全的方式来将核矩阵作为输入,同时保留与许多其他接受向量数组的算法的兼容性。
- 度量的有效值包括:
['additive_chi2', 'chi2', 'linear', 'poly', 'polynomial', 'rbf', 'laplacian', 'sigmoid', 'cosine']
在 用户指南 中阅读更多内容。
- 参数:
- X{类数组, 稀疏矩阵} 形状为 (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} of shape (n_samples_Y, n_features), default=None
仅当 X 的形状为 (n_samples_X, n_features) 时,这是第二个特征数组。
- metricstr 或可调用对象,默认值="linear"
在计算特征数组中实例之间核时使用的度量。如果 metric 是字符串,它必须是
pairwise.PAIRWISE_KERNEL_FUNCTIONS中的一个度量。如果 metric 是“precomputed”,则假定 X 是一个核矩阵。或者,如果 metric 是一个可调用函数,它将对每对实例(行)进行调用,并记录结果值。可调用对象应接受 X 中的两行作为输入,并返回相应的核值作为单个数字。这意味着sklearn.metrics.pairwise中的可调用对象不被允许,因为它们操作的是矩阵,而不是单个样本。请改用标识核的字符串。- filter_paramsbool,默认值=False
是否过滤无效参数。
- n_jobsint, default=None
用于计算的作业数量。这通过将成对矩阵分解为 n_jobs 个均匀切片并使用多线程计算它们来实现。
None表示 1,除非在joblib.parallel_backend上下文中。-1表示使用所有处理器。有关更多详细信息,请参阅词汇表。- **kwdsoptional keyword parameters
任何其他参数将直接传递给核函数。
- 返回:
- K形状为 (n_samples_X, n_samples_X) 或 (n_samples_X, n_samples_Y) 的 ndarray
一个核矩阵 K,使得 K_{i, j} 是给定矩阵 X 的第 i 个向量和第 j 个向量之间的核(如果 Y 为 None)。如果 Y 不为 None,则 K_{i, j} 是 X 的第 i 个数组和 Y 的第 j 个数组之间的核。
注意事项
如果 metric 是一个可调用对象,则对
X和Y的维度没有限制。示例
>>> 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.]])