ConstantKernel#

class sklearn.gaussian_process.kernels.ConstantKernel(constant_value=1.0, constant_value_bounds=(1e-05, 100000.0))[原始碼]#

常數核函數。

可以用作乘積核函數的一部分,其中它縮放另一個因子(核函數)的大小;或用作總和核函數的一部分,其中它修改高斯過程的均值。

\[k(x_1, x_2) = constant\_value \;\forall\; x_1, x_2\]

加入常數核函數等同於加入一個常數

kernel = RBF() + ConstantKernel(constant_value=2)

與以下相同:

kernel = RBF() + 2

請參閱使用者指南以了解更多資訊。

於 0.18 版本新增。

參數:
constant_valuefloat,預設值=1.0

定義共變異數的常數值:k(x_1, x_2) = constant_value

constant_value_bounds一對 float >= 0 或 “fixed”,預設值=(1e-5, 1e5)

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

範例

>>> from sklearn.datasets import make_friedman2
>>> from sklearn.gaussian_process import GaussianProcessRegressor
>>> from sklearn.gaussian_process.kernels import RBF, ConstantKernel
>>> X, y = make_friedman2(n_samples=500, noise=0, random_state=0)
>>> kernel = RBF() + ConstantKernel(constant_value=2)
>>> gpr = GaussianProcessRegressor(kernel=kernel, alpha=5,
...         random_state=0).fit(X, y)
>>> gpr.score(X, y)
0.3696...
>>> gpr.predict(X[:1,:], return_std=True)
(array([606.1...]), array([0.24...]))
__call__(X, Y=None, eval_gradient=False)[原始碼]#

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

參數:
X類陣列,形狀為 (n_samples_X, n_features) 或物件列表

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

Y類陣列,形狀為 (n_samples_X, n_features) 或物件列表,預設值=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) 或物件列表

核函數的引數。

傳回值:
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#

核函數是否僅適用於固定長度的特徵向量。

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

設定此核函數的參數。

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

傳回值:
self
property theta#

傳回(扁平化、對數轉換的)非固定超參數。

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

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

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