RBF#

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

徑向基函數核 (又名平方指數核)。

RBF 核是一種靜態核。它也被稱為「平方指數」核。它由長度尺度參數 \(l>0\) 參數化,它可以是純量(核的等向變體)或與輸入 X 具有相同維度的向量(核的異向變體)。核的公式為:

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

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

此核是無限可微分的,這表示以該核作為共變異數函數的 GP 具有所有階的均方導數,因此非常平滑。有關 RBF 核的更多詳細資訊,請參閱 [2],第 4 章,第 4.2 節。

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

在 0.18 版中加入。

參數:
length_scalefloat 或形狀為 (n_features,) 的 ndarray,預設值為 1.0

核的長度尺度。如果為 float,則使用等向核。如果為陣列,則使用異向核,其中 l 的每個維度定義了各自特徵維度的長度尺度。

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

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

參考文獻

範例

>>> from sklearn.datasets import load_iris
>>> from sklearn.gaussian_process import GaussianProcessClassifier
>>> from sklearn.gaussian_process.kernels import RBF
>>> X, y = load_iris(return_X_y=True)
>>> kernel = 1.0 * RBF(1.0)
>>> gpc = GaussianProcessClassifier(kernel=kernel,
...         random_state=0).fit(X, y)
>>> gpc.score(X, y)
0.9866...
>>> gpc.predict_proba(X[:2,:])
array([[0.8354..., 0.03228..., 0.1322...],
       [0.7906..., 0.0652..., 0.1441...]])
__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

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