sklearn.gaussian_process.kernels.RBF

class sklearn.gaussian_process.kernels.RBF

Kernel o núcleo de la función base Radial (también conocido como kernel cuadrado-exponencial).

El núcleo RBF es un núcleo estacionario. También se conoce como núcleo «exponencial cuadrado». Está parametrizado por un parámetro de escala de longitud \(l>0\), que puede ser un escalar (variante isotrópica del núcleo) o un vector con el mismo número de dimensiones que las entradas X (variante anisotrópica del núcleo). El núcleo viene dado por:

\[k(x_i, x_j) = \exp\left(- \frac{d(x_i, x_j)^2}{2l^2} \right)\]

donde \(l\) es la escala de longitud del kernel y \(d(\cdot,\cdot)\) es la distancia euclidiana. Para saber cómo establecer el parámetro de la escala de longitud, ver, por ejemplo, [1].

Este núcleo es infinitamente diferenciable, lo que implica que las GPs con este núcleo como función de covarianza tienen derivadas cuadráticas medias de todos los órdenes, y por tanto son muy suaves. Ver [2], Capítulo 4, Sección 4.2, para más detalles del núcleo RBF.

Más información en el Manual de usuario.

Nuevo en la versión 0.18.

Parámetros
length_scalefloat o ndarray de forma (n_features,), default=1.0

La escala de longitud del núcleo. Si es un flotador, se utiliza un núcleo isotrópico. Si es un arreglo, se utiliza un núcleo anisotrópico en el que cada dimensión de l define la escala de longitud de la respectiva dimensión de la característica.

length_scale_boundspar de flotantes >= 0 o «fixed», default=(1e-5, 1e5)

El límite inferior y superior de “length_scale”. Si se establece como » fixed», “length_scale” no puede cambiarse durante el ajuste de los hiperparámetros.

Atributos
anisotropic
bounds

Devuelve los límites transformados en logaritmo de la theta.

hyperparameter_length_scale
hyperparameters

Devuelve una lista de todas las especificaciones de los hiperparámetros.

n_dims

Devuelve el número de hiperparámetros no fijos del núcleo.

requires_vector_input

Devuelve si el núcleo está definido en vectores de características de longitud fija o en objetos genéricos.

theta

Devuelve los hiperparámetros no fijos (aplanados y transformados en logaritmos).

Referencias

1

David Duvenaud (2014). «The Kernel Cookbook: Advice on Covariance functions».

2

Carl Edward Rasmussen, Christopher K. I. Williams (2006). «Gaussian Processes for Machine Learning». The MIT Press.

Ejemplos

>>> from sklearn.datasets import load_iris
>>> from sklearn.gaussian_process import GaussianProcessClassifier
>>> from sklearn.gaussian_process.kernels import RBF
>>> X, y = load_iris(return_X_y=True)
>>> kernel = 1.0 * RBF(1.0)
>>> gpc = GaussianProcessClassifier(kernel=kernel,
...         random_state=0).fit(X, y)
>>> gpc.score(X, y)
0.9866...
>>> gpc.predict_proba(X[:2,:])
array([[0.8354..., 0.03228..., 0.1322...],
       [0.7906..., 0.0652..., 0.1441...]])

Métodos

__call__

Devuelve el núcleo k(X, Y) y opcionalmente su gradiente.

clone_with_theta

Devuelve un clon de sí mismo con los hiperparámetros dados theta.

diag

Devuelve la diagonal del núcleo k(X, X).

get_params

Obtener los parámetros de este núcleo.

is_stationary

Devuelve si el núcleo es estacionario.

set_params

Obtener los parámetros de este núcleo.

__call__()

Devuelve el núcleo k(X, Y) y opcionalmente su gradiente.

Parámetros
Xndarray de forma (n_samples_X, n_features)

Argumento izquierdo del núcleo devuelto k(X, Y)

Yndarray de forma (n_samples_Y, n_features), default=None

Argumento derecho del núcleo devuelto k(X, Y). Si es None, se evalúa k(X, X) en su lugar.

eval_gradientbool, default=False

Determina si se calcula el gradiente con respecto al logaritmo del hiperparámetro del núcleo. Sólo se admite cuando Y es None.

Devuelve
Kndarray de forma (n_samples_X, n_samples_Y)

Núcleo k(X, Y)

K_gradientndarray de forma(n_samples_X, n_samples_X, n_dims), opcional

El gradiente del núcleo k(X, X) con respecto al logaritmo del hiperparámetro del núcleo. Sólo se devuelve cuando eval_gradient es True.

property bounds

Devuelve los límites transformados en logaritmo de la theta.

Devuelve
boundsndarray de forma (n_dims, 2)

Los límites transformados logarítmicamente de los hiperparámetros del núcleo theta

clone_with_theta()

Devuelve un clon de sí mismo con los hiperparámetros dados theta.

Parámetros
thetandarray de forma (n_dims,)

Hiperparámetros

diag()

Devuelve la diagonal del núcleo k(X, X).

El resultado de este método es idéntico al de np.diag(self(X)); sin embargo, se puede evaluar de forma más eficiente ya que sólo se evalúa la diagonal.

Parámetros
Xndarray de forma (n_samples_X, n_features)

Argumento izquierdo del núcleo devuelto k(X, Y)

Devuelve
K_diagndarray de forma (n_samples_X,)

Diagonal del núcleo k(X, X)

get_params()

Obtener los parámetros de este núcleo.

Parámetros
deepbool, default=True

Si es True, devolverá los parámetros para este estimador y los subobjetos contenidos que son estimadores.

Devuelve
paramsdict

Nombres de parámetros mapeados a sus valores.

property hyperparameters

Devuelve una lista de todas las especificaciones de los hiperparámetros.

is_stationary()

Devuelve si el núcleo es estacionario.

property n_dims

Devuelve el número de hiperparámetros no fijos del núcleo.

property requires_vector_input

Devuelve si el núcleo está definido en vectores de características de longitud fija o en objetos genéricos. El valor predeterminado es True para la compatibilidad con versiones anteriores.

set_params()

Obtener los parámetros de este núcleo.

El método funciona tanto en núcleos simples como en núcleos anidados. Estos últimos tienen parámetros de la forma <component>__<parameter> para que sea posible actualizar cada componente de un objeto anidado.

Devuelve
self
property theta

Devuelve los hiperparámetros no fijos (aplanados y transformados en logaritmos).

Ten en cuenta que theta suelen ser los valores transformados en logaritmos de los hiperparámetros del núcleo, ya que esta representación del espacio de búsqueda es más adecuada para la búsqueda de hiperparámetros, ya que los hiperparámetros como las escalas de longitud viven naturalmente en una escala logarítmica.

Devuelve
thetandarray de forma (n_dims,)

Los hiperparámetros no fijos y transformados en logaritmos del núcleo

Ejemplos usando sklearn.gaussian_process.kernels.RBF