ExpSineSquared#

class sklearn.gaussian_process.kernels.ExpSineSquared(length_scale=1.0, periodicity=1.0, length_scale_bounds=(1e-05, 100000.0), periodicity_bounds=(1e-05, 100000.0))[原始碼]#

Exp-Sine-Squared 核 (又稱週期核)。

ExpSineSquared 核允許建立會精確重複的函數模型。它透過長度尺度參數 \(l>0\) 和週期性參數 \(p>0\) 進行參數化。目前僅支援各向同性變體,其中 \(l\) 為純量。此核由下式給出

\[k(x_i, x_j) = \text{exp}\left(- \frac{ 2\sin^2(\pi d(x_i, x_j)/p) }{ l^ 2} \right)\]

其中 \(l\) 是核的長度尺度,\(p\) 是核的週期性,而 \(d(\cdot,\cdot)\) 是歐式距離。

詳情請參閱使用者指南

於 0.18 版本新增。

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

核心的長度尺度。

periodicityfloat > 0,預設值=1.0

核心的週期性。

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

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

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

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

範例

>>> from sklearn.datasets import make_friedman2
>>> from sklearn.gaussian_process import GaussianProcessRegressor
>>> from sklearn.gaussian_process.kernels import ExpSineSquared
>>> X, y = make_friedman2(n_samples=50, noise=0, random_state=0)
>>> kernel = ExpSineSquared(length_scale=1, periodicity=1)
>>> gpr = GaussianProcessRegressor(kernel=kernel, alpha=5,
...         random_state=0).fit(X, y)
>>> gpr.score(X, y)
0.0144...
>>> gpr.predict(X[:2,:], return_std=True)
(array([425.6..., 457.5...]), array([0.3894..., 0.3467...]))
__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 hyperparameter_length_scale#

回傳長度尺度

property hyperparameters#

回傳所有超參數規格的列表。

is_stationary()[原始碼]#

回傳核心是否為靜態。

property n_dims#

回傳核心的非固定超參數的數量。

property requires_vector_input#

回傳核心是否定義在固定長度的特徵向量或一般物件上。為向後相容性,預設為 True。

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

設定此核心的參數。

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

回傳值:
自身
property theta#

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

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

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

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