指数运算#

class sklearn.gaussian_process.kernels.Exponentiation(kernel, exponent)[source]#

指数核函数接收一个基核和一个标量参数 \(p\),并通过以下方式组合:

\[k_{exp}(X, Y) = k(X, Y) ^p\]

注意,__pow__ 魔术方法被重写,因此 Exponentiation(RBF(), 2) 等效于使用 ** 运算符,例如 RBF() ** 2

更多信息请参阅 用户指南

0.18版本新增。

参数:
kernelKernel

基核函数

exponentfloat

基核函数的指数

示例

>>> from sklearn.datasets import make_friedman2
>>> from sklearn.gaussian_process import GaussianProcessRegressor
>>> from sklearn.gaussian_process.kernels import (RationalQuadratic,
...            Exponentiation)
>>> X, y = make_friedman2(n_samples=500, noise=0, random_state=0)
>>> kernel = Exponentiation(RationalQuadratic(), exponent=2)
>>> gpr = GaussianProcessRegressor(kernel=kernel, alpha=5,
...         random_state=0).fit(X, y)
>>> gpr.score(X, y)
0.419...
>>> gpr.predict(X[:1,:], return_std=True)
(array([635.5...]), array([0.559...]))
__call__(X, Y=None, eval_gradient=False)[source]#

返回核函数 k(X, Y) 及其梯度(可选)。

参数:
X形状为 (n_samples_X, n_features) 的类数组或对象列表

返回的核 k(X, Y) 的左参数。

Y形状为 (n_samples_Y, n_features) 的类数组或对象列表,默认为 None

返回的核 k(X, Y) 的右参数。如果为 None,则计算 k(X, X)。

eval_gradient布尔值,默认为 False

确定是否计算关于核超参数对数的梯度。

返回:
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 时返回。

属性 bounds#

返回 theta 的对数变换边界。

返回:
bounds形状为 (n_dims, 2) 的 ndarray

核的超参数 theta 的对数变换边界

clone_with_theta(theta)[source]#

返回具有给定超参数 theta 的自身的克隆。

参数:
theta形状为 (n_dims,) 的 ndarray

超参数

diag(X)[source]#

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

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

参数:
X形状为 (n_samples_X, n_features) 的类数组或对象列表

核的参数。

返回:
K_diag形状为 (n_samples_X,) 的 ndarray

核 k(X, X) 的对角线

get_params(deep=True)[source]#

获取此核的参数。

参数:
deep布尔值,默认为 True

如果为 True,则将返回此估计器和作为估计器的包含子对象的参数。

返回:
params字典

参数名称映射到它们的值。

属性 hyperparameters#

返回所有超参数的列表。

is_stationary()[source]#

返回该核是否平稳。

属性 n_dims#

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

属性 requires_vector_input#

返回该核是否在离散结构上定义。

set_params(**params)[source]#

设置此核的参数。

此方法适用于简单核以及嵌套核。后者具有 <component>__<parameter> 形式的参数,因此可以更新嵌套对象的每个组件。

返回:
自身
属性 theta#

返回(扁平化的,对数变换的)非固定超参数。

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

返回:
theta形状为 (n_dims,) 的 ndarray

核的非固定、对数变换的超参数