成對核函數#

class sklearn.gaussian_process.kernels.PairwiseKernel(gamma=1.0, gamma_bounds=(1e-05, 100000.0), metric='linear', pairwise_kernels_kwargs=None)[原始碼]#

sklearn.metrics.pairwise 中核函數的包裝器。

sklearn.metrics.pairwise 中核函數功能的薄包裝器。

注意:eval_gradient 的評估不是解析的,而是數值的,並且所有

核函數僅支援同向距離。參數 gamma 被認為是超參數,可以最佳化。其他核函數參數在初始化時直接設定,並保持固定。

在 0.18 版本中新增。

參數:
gammafloat,預設值=1.0

由度量指定的成對核函數的參數 gamma。它應該是正數。

gamma_bounds一對浮點數 >= 0 或「fixed」,預設值=(1e-5, 1e5)

「gamma」的下限和上限。如果設定為「fixed」,則在超參數調整期間無法變更「gamma」。

metric{“linear”, “additive_chi2”, “chi2”, “poly”, “polynomial”, “rbf”, “laplacian”, “sigmoid”, “cosine”} 或可呼叫函數,預設值=”linear”

計算特徵陣列中實例之間核函數時使用的度量。如果度量是字串,則它必須是 pairwise.PAIRWISE_KERNEL_FUNCTIONS 中的度量之一。如果度量是「precomputed」,則假設 X 是核函數矩陣。或者,如果度量是可呼叫函數,則會對每對實例(行)呼叫它,並記錄結果值。可呼叫函數應將來自 X 的兩個陣列作為輸入,並傳回一個表示它們之間距離的值。

pairwise_kernels_kwargsdict,預設值為 None

此字典中的所有條目(如果有的話)會作為關鍵字參數傳遞給成對核函數。

範例

>>> from sklearn.datasets import load_iris
>>> from sklearn.gaussian_process import GaussianProcessClassifier
>>> from sklearn.gaussian_process.kernels import PairwiseKernel
>>> X, y = load_iris(return_X_y=True)
>>> kernel = PairwiseKernel(metric='rbf')
>>> gpc = GaussianProcessClassifier(kernel=kernel,
...         random_state=0).fit(X, y)
>>> gpc.score(X, y)
0.9733...
>>> gpc.predict_proba(X[:2,:])
array([[0.8880..., 0.05663..., 0.05532...],
       [0.8676..., 0.07073..., 0.06165...]])
__call__(X, Y=None, eval_gradient=False)[原始碼]#

返回核函數 k(X, Y) 以及(可選的)其梯度。

參數:
X形狀為 (n_samples_X, n_features) 的 ndarray

返回的核函數 k(X, Y) 的左側參數

Y形狀為 (n_samples_Y, n_features) 的 ndarray,預設值為 None

返回的核函數 k(X, Y) 的右側參數。如果為 None,則會改為計算 k(X, X)。

eval_gradientbool,預設值為 False

決定是否計算相對於核函數超參數對數的梯度。僅在 Y 為 None 時支援。

回傳值:
K形狀為 (n_samples_X, n_samples_Y) 的 ndarray

核函數 k(X, Y)

K_gradient形狀為 (n_samples_X, n_samples_X, n_dims) 的 ndarray,可選

核函數 k(X, X) 相對於核函數超參數對數的梯度。僅當 eval_gradient 為 True 時返回。

property bounds#

返回 theta 的對數轉換邊界。

回傳值:
bounds形狀為 (n_dims, 2) 的 ndarray

核函數超參數 theta 的對數轉換邊界

clone_with_theta(theta)[原始碼]#

返回一個具有給定超參數 theta 的自身副本。

參數:
theta形狀為 (n_dims,) 的 ndarray

超參數

diag(X)[原始碼]#

返回核函數 k(X, X) 的對角線。

此方法的结果與 np.diag(self(X)) 相同;但是,由於僅評估對角線,因此可以更有效地評估。

參數:
X形狀為 (n_samples_X, n_features) 的 ndarray

返回的核函數 k(X, Y) 的左側參數

回傳值:
K_diag形狀為 (n_samples_X,) 的 ndarray

核函數 k(X, X) 的對角線

get_params(deep=True)[原始碼]#

取得此核函數的參數。

參數:
deepbool,預設值為 True

如果為 True,則將返回此估計器和包含的子物件(為估計器)的參數。

回傳值:
paramsdict

參數名稱對應其值的字典。

property hyperparameters#

返回所有超參數規格的清單。

is_stationary()[原始碼]#

返回核函數是否為靜態的。

property n_dims#

返回核函數的非固定超參數數量。

property requires_vector_input#

返回核函數是否定義在固定長度的特徵向量或通用物件上。為了回溯相容性,預設值為 True。

set_params(**params)[原始碼]#

設定此核函數的參數。

此方法適用於簡單的核函數以及巢狀核函數。後者具有 <component>__<parameter> 形式的參數,因此可以更新巢狀物件的每個元件。

回傳值:
自身
property theta#

返回(展平的,對數轉換的)非固定超參數。

請注意,theta 通常是核函數超參數的對數轉換值,因為這種搜尋空間的表示形式更適合超參數搜尋,因為長度尺度等超參數自然存在於對數尺度上。

回傳值:
theta形狀為 (n_dims,) 的 ndarray

核函數的非固定、對數轉換超參數