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’]

請參閱使用手冊了解更多資訊。

參數:
X類陣列 (array-like) 或稀疏矩陣,形狀為 (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) 或稀疏矩陣,形狀為 (n_samples_Y, n_features),預設為 None

僅當 X 的形狀為 (n_samples_X, n_features) 時的第二個特徵陣列。

metric字串或可呼叫物件,預設為 “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可選的關鍵字參數

任何其他參數都會直接傳遞給核函數。

返回:
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 個陣列之間的核函數。

注意

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