產品 (Product)#

class sklearn.gaussian_process.kernels.Product(k1, k2)[來源]#

Product 核函數接受兩個核函數 \(k_1\)\(k_2\) 並透過以下方式組合它們

\[k_{prod}(X, Y) = k_1(X, Y) * k_2(X, Y)\]

請注意,__mul__ 魔術方法被覆寫,因此 Product(RBF(), RBF()) 等同於使用 * 運算子與 RBF() * RBF()

請參閱使用者指南中的詳細說明。

在版本 0.18 中加入。

參數:
k1Kernel

產品核函數的第一個基本核函數

k2Kernel

產品核函數的第二個基本核函數

範例

>>> from sklearn.datasets import make_friedman2
>>> from sklearn.gaussian_process import GaussianProcessRegressor
>>> from sklearn.gaussian_process.kernels import (RBF, Product,
...            ConstantKernel)
>>> X, y = make_friedman2(n_samples=500, noise=0, random_state=0)
>>> kernel = Product(ConstantKernel(2), RBF())
>>> gpr = GaussianProcessRegressor(kernel=kernel,
...         random_state=0).fit(X, y)
>>> gpr.score(X, y)
1.0
>>> kernel
1.41**2 * RBF(length_scale=1)
__call__(X, Y=None, eval_gradient=False)[來源]#

傳回核函數 k(X, Y) 以及選擇性的梯度。

參數:
Xarray-like 的形狀 (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)[原始碼]#

返回具有給定超參數 theta 的 self 的複製。

參數:
theta形狀為 (n_dims,) 的 ndarray

超參數

diag(X)[原始碼]#

返回核函數 k(X, X) 的對角線。

此方法的结果與 np.diag(self(X)) 相同;但是,由於只評估對角線,因此可以更有效率地進行評估。

參數:
Xarray-like 的形狀 (n_samples_X, n_features) 或物件列表

核函數的參數。

返回:
K_diag形狀為 (n_samples_X,) 的 ndarray

核函數 k(X, X) 的對角線

get_params(deep=True)[原始碼]#

取得此核函數的參數。

參數:
deep布林值,預設為 True

如果為 True,將會返回此估算器及其包含的子物件(即估算器)的參數。

返回:
params字典

參數名稱對應到它們的值。

屬性 hyperparameters#

返回所有超參數的列表。

is_stationary()[原始碼]#

返回核函數是否為靜態。

屬性 n_dims#

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

屬性 requires_vector_input#

返回核函數是否為靜態。

set_params(**params)[原始碼]#

設定此核函數的參數。

此方法適用於簡單的核函數以及巢狀核函數。後者的參數形式為 <component>__<parameter>,因此可以更新巢狀物件的每個元件。

返回:
self
屬性 theta#

返回(扁平化、對數轉換的)非固定超參數。

請注意,theta 通常是核函數超參數的對數轉換值,因為這種搜尋空間的表示方式更適合超參數搜尋,例如長度尺度等超參數自然位於對數尺度上。

返回:
theta形狀為 (n_dims,) 的 ndarray

核函數的非固定、對數轉換的超參數