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 的對數轉換界限
- 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#
傳回所有超參數規格的清單。
- property n_dims#
傳回核心的非固定超參數數量。
- property requires_vector_input#
傳回是否在固定長度的特徵向量或泛型物件上定義核心。預設為 True 以實現向後相容性。
- set_params(**params)[原始碼]#
設定此核心的參數。
此方法適用於簡單核心以及巢狀核心。後者具有
<元件>__<參數>
形式的參數,因此可以更新巢狀物件的每個元件。- 傳回:
- self
- 屬性 theta#
返回(展平、對數轉換後的)非固定超參數。
請注意,theta 通常是核心超參數的對數轉換值,因為這種搜尋空間的表示方式更適合超參數搜尋,因為像長度尺度這樣的超參數自然存在於對數尺度上。
- 傳回:
- theta形狀為 (n_dims,) 的 ndarray
核心的非固定、對數轉換超參數