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