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