sklearn.gaussian_process.RationalQuadratic

class sklearn.gaussian_process.kernels.RationalQuadratic(length_scale=1.0, alpha=1.0, length_scale_bounds=(1e-05100000.0), alpha_bounds=(1e-05100000.0))

[源码]

有理二次内核。

有理二次核可以看作是具有不同特征长度尺度的RBF核的尺度混合物(无穷和)。它由一个长度标度参数和一个标度混合参数来参数化。目前只支持纵向尺度为标量的各向同性变量。核函数为:

其中为尺度混合参数,为核的长度尺度,为欧氏距离。有关如何设置参数的建议,请参见 [1]。

用户指南中阅读更多内容。

新版本 0.18 。

参数 说明
length_scale float > 0, default=1.0
核的长度尺度。
alpha float > 0, default=1.0
规模的混合参数
length_scale_bounds pair of floats >= 0 or “fixed”, default=(1e-5, 1e5)
length_scale上的下界和上界。如果设置为“固定”,则“length_scale”在超参数调优期间无法更改。
alpha_bounds pair of floats >= 0 or “fixed”, default=(1e-5, 1e5)
alpha的下界和上界。如果设置为“固定”,“alpha”在超参数调优期间不能改变。
属性 说明
bounds 返回的对数变换界限。
hyperparameter_alpha
hyperparameter_length_scale
hyperparameters 返回所有超参数规范的列表。
n_dims) 返回内核的非固定超参数的数量。
requires_vector_input 返回内核是在固定长度的特征向量上定义的还是在通用对象上定义的。
theta) 返回(扁平的、对数转换的)非固定超参数。

References

示例

>>> 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 = 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__(self, X[, Y, eval_gradient]) 返回核函数k(X, Y)和它的梯度。
clone_with_theta(self, theta) 返回带有给定超参数theta的self的克隆。
diag(self, X) 返回核函数k(X, X)的对角线。
get_params(self[, deep]) 获取这个内核的参数。
is_stationary(self) 返回内核是否静止。
set_params(self, **params) 设置这个内核的参数。
__init__(self, length_scale=1.0, length_scale_bounds=(1e-05100000.0))

[源码]

初始化self. See 请参阅help(type(self))以获得准确的说明 。

 __call__(self, X, Y=None, eval_gradient=False)

[源码]

返回核函数k(X, Y)和它的梯度。

参数 说明
X ndarray of shape (n_samples_X, n_features)
返回核函数k(X, Y)的左参数
Y ndarray of shape (n_samples_Y, n_features), default=None
返回的核函数k(X, Y)的正确参数。如果没有,则计算k(X, X)。
eval_gradient bool, default=False
确定关于核超参数的梯度是否确定。只有当Y没有的时候才被支持。
返回值 说明
K ndarray of shape (n_samples_X, n_samples_Y)
内核k (X, Y)
K_gradient ndarray of shape (n_samples_X, n_samples_X, n_dims), optional
核函数k(X, X)关于核函数超参数的梯度。只有当eval_gradient为真时才返回。
property bounds

返回的对数变换界限。

返回值 说明
bounds ndarray of shape (n_dims, 2)
核函数超参数的对数变换界限
clone_with_theta(self, theta)

[源码]

返回带有给定超参数theta的self的克隆。

参数 说明
theta ndarray of shape (n_dims,)
的hyperparameters
diag(self, X)

[源码]

返回核函数k(X, X)的对角线。

该方法的结果与np.diag(self(X))相同;但是,由于只计算对角,因此可以更有效地计算它。

参数 说明
X ndarray of shape (n_samples_X, n_features)
返回核函数k(X, Y)的左参数
返回值 说明
K_diag ndarray of shape (n_samples_X,)
核k(X, X)的对角线
get_params(self, deep=True)

[源码]

获取这个内核的参数。

参数 说明
deep bool, default=True
如果为真,将返回此估计器的参数以及包含的作为估计器的子对象。
返回值 说明
params dict
参数名称映射到它们的值。
property hyperparameters

返回所有超参数的列表。

is_stationary(self)

[源码]

返回内核是否静止。

property n_dims

返回内核的非固定超参数的数量。

property requires_vector_input

返回内核是在固定长度的特征向量上定义的还是在通用对象上定义的。向后兼容性的默认值为True。

set_params(self, **params)

[源码]

设置这个内核的参数。

该方法适用于简单估计量和嵌套对象。后者具有形式为<component>_<parameter>的参数,这样就让更新嵌套对象的每个组件成为了可能。

返回值 说明
self -
property theta

返回(扁平的、对数转换的)非固定超参数。

注意,theta通常是内核超参数的对数变换值,因为这种搜索空间的表示更适合超参数搜索,因为像长度尺度这样的超参数自然存在于对数尺度上。

返回值 说明
theta ndarray of shape (n_dims,)
核函数的非固定、对数变换超参数