點積#

class sklearn.gaussian_process.kernels.DotProduct(sigma_0=1.0, sigma_0_bounds=(1e-05, 100000.0))[原始碼]#

點積核 (Dot-Product kernel)。

DotProduct 核函數是非靜態的,可以透過線性迴歸獲得,方法是對 \(x_d (d = 1, . . . , D)\) 的係數設置 \(N(0, 1)\) 先驗,並對偏差設置 \(N(0, \sigma_0^2)\) 先驗。DotProduct 核函數對於座標原點的旋轉是不變的,但對平移則不是。它由參數 sigma_0 \(\sigma\) 參數化,該參數控制核函數的不均勻性。當 \(\sigma_0^2 =0\) 時,該核函數稱為均勻線性核函數,否則為非均勻核函數。此核函數由以下公式給出:

\[k(x_i, x_j) = \sigma_0 ^ 2 + x_i \cdot x_j\]

DotProduct 核函數通常與指數運算結合使用。

有關 DotProduct 核函數的更多詳細資訊,請參閱 [1],第 4 章,4.2 節。

請在使用者指南中閱讀更多資訊。

於 0.18 版本新增。

參數:
sigma_0float >= 0,預設值=1.0

控制核函數不均勻性的參數。如果 sigma_0=0,則核函數是均勻的。

sigma_0_bounds一對 float >= 0 或 "fixed",預設值=(1e-5, 1e5)

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

參考文獻

範例

>>> from sklearn.datasets import make_friedman2
>>> from sklearn.gaussian_process import GaussianProcessRegressor
>>> from sklearn.gaussian_process.kernels import DotProduct, WhiteKernel
>>> X, y = make_friedman2(n_samples=500, noise=0, random_state=0)
>>> kernel = DotProduct() + WhiteKernel()
>>> gpr = GaussianProcessRegressor(kernel=kernel,
...         random_state=0).fit(X, y)
>>> gpr.score(X, y)
0.3680...
>>> gpr.predict(X[:2,:], return_std=True)
(array([653.0..., 592.1...]), array([316.6..., 316.6...]))
__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 的 self 的副本。

參數:
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> 形式的參數,因此可以更新巢狀物件的每個元件。

返回:
self
property theta#

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

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

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

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