當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python sklearn Matern用法及代碼示例


本文簡要介紹python語言中 sklearn.gaussian_process.kernels.Matern 的用法。

用法:

class sklearn.gaussian_process.kernels.Matern(length_scale=1.0, length_scale_bounds=(1e-05, 100000.0), nu=1.5)

母體內核。

Matern 內核類是 RBF 的泛化。它有一個附加參數 ,用於控製結果函數的平滑度。 越小,近似函數越不平滑。作為 ,內核變得等同於 RBF 內核。當 時,Matérn 內核變得與絕對 index 內核相同。重要的中間值是 (一次可微函數)和 (兩次可微函數)。

內核由下式給出:

其中 是歐幾裏得距離, 是修改的貝塞爾函數, 是伽瑪函數。有關 Matern 內核不同變體的詳細信息,請參閱 [1] 第 4 章 4.2 節。

在用戶指南中閱讀更多信息。

參數

length_scalefloat 或 ndarray 形狀 (n_features,),默認 = 1.0

內核的長度尺度。如果是浮點數,則使用各向同性內核。如果是數組,則使用各向異性內核,其中 l 的每個維度定義相應特征維度的length-scale。

length_scale_bounds一對浮點數 >= 0 或 “fixed”,默認 =(1e-5, 1e5)

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

nu浮點數,默認=1.5

參數 nu 控製學習函數的平滑度。 nu 越小,近似函數越不平滑。對於 nu=inf,內核等效於 RBF 內核,而對於 nu=0.5,內核等效於絕對 index 內核。重要的中間值是 nu=1.5(一次可微函數)和 nu=2.5(兩次可微函數)。請注意,不在 [0.5, 1.5, 2.5, inf] 中的 nu 值會產生相當高的計算成本(大約高 10 倍),因為它們需要評估修改後的 Bessel 函數。此外,與 l 相比,nu 保持固定為其初始值且未優化。

屬性

anisotropic
bounds

返回 theta 上的 log-transformed 邊界。

hyperparameter_length_scale
hyperparameters

返回所有超參數規範的列表。

n_dims

返回內核的非固定超參數的數量。

requires_vector_input

返回內核是在固定長度特征向量還是通用對象上定義的。

theta

返回(扁平化,log-transformed)非固定超參數。

參考

1

卡爾·愛德華·拉斯穆森、克裏斯托弗·K·I·威廉姆斯 (2006)。 “機器學習的高斯過程”。麻省理工學院出版社。

例子

>>> from sklearn.datasets import load_iris
>>> from sklearn.gaussian_process import GaussianProcessClassifier
>>> from sklearn.gaussian_process.kernels import Matern
>>> X, y = load_iris(return_X_y=True)
>>> kernel = 1.0 * Matern(length_scale=1.0, nu=1.5)
>>> gpc = GaussianProcessClassifier(kernel=kernel,
...         random_state=0).fit(X, y)
>>> gpc.score(X, y)
0.9866...
>>> gpc.predict_proba(X[:2,:])
array([[0.8513..., 0.0368..., 0.1117...],
        [0.8086..., 0.0693..., 0.1220...]])

相關用法


注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.gaussian_process.kernels.Matern。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。