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