RationalQuadratic#

class sklearn.gaussian_process.kernels.RationalQuadratic(length_scale=1.0, alpha=1.0, length_scale_bounds=(1e-05, 100000.0), alpha_bounds=(1e-05, 100000.0))[source]#

Rational Quadratic 核心。

RationalQuadratic 核心可以看作是具有不同特徵長度尺度的 RBF 核心的尺度混合(無限總和)。它由長度尺度參數 \(l>0\) 和尺度混合參數 \(\alpha>0\) 參數化。目前僅支援長度尺度 \(l\) 為純量的等向變體。核心由下式給出

\[k(x_i, x_j) = \left( 1 + \frac{d(x_i, x_j)^2 }{ 2\alpha l^2}\right)^{-\alpha}\]

其中 \(\alpha\) 是尺度混合參數,\(l\) 是核心的長度尺度,而 \(d(\cdot,\cdot)\) 是歐幾里得距離。有關如何設定參數的建議,請參閱例如 [1]

使用者指南 中閱讀更多內容。

在 0.18 版本中新增。

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

核心的長度尺度。

alphafloat > 0,預設值為 1.0

尺度混合參數

length_scale_boundsfloat 配對 >= 0 或 "fixed",預設值為 (1e-5, 1e5)

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

alpha_boundsfloat 配對 >= 0 或 "fixed",預設值為 (1e-5, 1e5)

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

參考文獻

範例

>>> from sklearn.datasets import load_iris
>>> from sklearn.gaussian_process import GaussianProcessClassifier
>>> from sklearn.gaussian_process.kernels import RationalQuadratic
>>> X, y = load_iris(return_X_y=True)
>>> kernel = RationalQuadratic(length_scale=1.0, alpha=1.5)
>>> gpc = GaussianProcessClassifier(kernel=kernel,
...         random_state=0).fit(X, y)
>>> gpc.score(X, y)
0.9733...
>>> gpc.predict_proba(X[:2,:])
array([[0.8881..., 0.0566..., 0.05518...],
        [0.8678..., 0.0707... , 0.0614...]])
__call__(X, Y=None, eval_gradient=False)[source]#

傳回核心 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)[source]#

傳回具有給定超參數 theta 的 self 的複本。

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

超參數

diag(X)[source]#

傳回核心 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)[source]#

取得此核心的參數。

參數:
deepbool,預設值為 True

如果為 True,將會傳回此評估器及其包含的子物件(為評估器)的參數。

傳回:
paramsdict

參數名稱對應至其值。

property hyperparameters#

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

is_stationary()[source]#

傳回核心是否為靜態。

property n_dims#

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

property requires_vector_input#

傳回是否在固定長度的特徵向量或泛型物件上定義核心。預設為 True 以實現向後相容性。

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

設定此核心的參數。

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

傳回:
self
屬性 theta#

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

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

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

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