当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。