sklearn.kernel_ridge.KernelRidge

class sklearn.kernel_ridge.KernelRidge

Regresión de cresta de núcleo.

La regresión de cresta del núcleo (Kernel Ridge Regression, KRR) combina regresión de cresta (mínimos cuadrados lineales con regularización de la norma l2) con el truco núcleo. Así aprende una función lineal en el espacio inducido por el núcleo respectivo y los datos. Para los núcleos no lineales, esto corresponde a una función no lineal en el espacio original.

La forma del modelo aprendido por la regresión cresta de núcleo (KRR) es idéntica a la regresión de vectores de soporte (SVR). Sin embargo, se utilizan diferentes funciones de pérdida: KRR utiliza la pérdida de error al cuadrado mientras que la regresión de vectores de soporte utiliza la pérdida insensible (insensitive loss) a épsilon, ambas combinadas con la regularización l2. A diferencia de SVR, el ajuste de un modelo KRR puede realizarse de forma cerrada y suele ser más rápido para conjuntos de datos de tamaño medio. Por otro lado, el modelo aprendido no es disperso y por lo tanto es más lento que SVR, que aprende un modelo disperso para epsilon > 0, en el tiempo de predicción.

El estimador tiene soporte incorporado por regresión multivariante (es decir, cuando y es un arreglo 2d de forma [n_samples, n_targets]).

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

Parámetros
alphaflotante o array-like de forma (n_targets,), default=1.0

La fuerza de regularización; debe ser un flotante positivo. La regularización mejora el condicionamiento del problema y reduce la varianza de los estimados. Los valores mas grandes especifican una regularización mas fuerte. Alfa corresponde a 1 / (2C) en otros modelos lineales como LogisticRegression o LinearSVC. Si se pasa un arreglo, las penalizaciones se asume que son específicas a los objetivos. Por lo tanto, deben corresponder en número. Ver Regresión de cresta y clasificación para la formula.

kernelcadena o invocable, default=»linear»

El mapeado de núcleo usado internamente. Este parámetro es directamente pasado a pairwise_kernel. Si kernel es una cadena, entonces debe ser una de las metricas en pairwise.PAIRWISE_KERNEL_FUNCTIONS. Si kernel es «precomputed», X se asume que es una matriz de núcleo. Alternativamente, si kernel es una función invocable, es llamada en cada par de instancias (filas) y el valor resultante grabado. El invocable debería tomar dos filas de X como entrada y regresa el valor correspondiente de núcleo como un número único. Esto quiere decir que los invocables de sklearn.metrics.pairwise no están permitidos, ya que operan sobre matrices, no muestras únicas. Utiliza la cadena identificando el núcleo en su lugar.

gammafloat, default=None

El parámetro Gamma para los núcleos RBF, laplacianos, polimoniales, exponenciales chi2 y sigmoides. La interpretación del valor predeterminado se deja en manos del núcleo; ver la documentación para sklearn.metrics.pairwise. Ignorado por otros núcleos.

degreefloat, default=3

Grado del núcleo polinómico. Ignorado por otros núcleos.

coef0float, default=1

Coeficiente cero para los núcleos polinomiales y sigmoides. Ignorado por otros núcleos.

kernel_paramsmapeado de cadenas a cualquiera, default=None

Parámetros adicionales (argumentos de palabra clave) para la función del núcleo pasado como objeto invocable.

Atributos
dual_coef_ndarray de forma (n_samples,) o (n_samples, n_targets)

Representación de vectores de ponderado en el espacio de núcleo

X_fit_{ndarray, sparse matrix} de forma (n_samples, n_features)

Datos de entrenamiento, el cual también esta requerido para la predicción, Si kernel == «precomputed»» esta es la matriz de entrenamiento precalculado, de forma (n_samples, n_samples).

Ver también

sklearn.linear_model.Ridge

Regresión de cresta lineal.

sklearn.svm.SVR

Regresión de Vector de Apoyo implementado utilizando libsvm.

Referencias

  • Kevin P. Murphy «Machine Learning: A Probabilistic Perspective», The MIT Press chapter 14.4.3, pp. 492-493

Ejemplos

>>> from sklearn.kernel_ridge import KernelRidge
>>> import numpy as np
>>> n_samples, n_features = 10, 5
>>> rng = np.random.RandomState(0)
>>> y = rng.randn(n_samples)
>>> X = rng.randn(n_samples, n_features)
>>> clf = KernelRidge(alpha=1.0)
>>> clf.fit(X, y)
KernelRidge(alpha=1.0)

Métodos

fit

Ajusta al modelo de regresión de núcleo de cresta

get_params

Obtiene los parámetros para este estimador.

predict

Predice utilizando el modelo de núcleo de cresta

score

Devuelve el coeficiente de determinación \(R^2\) de la predicción.

set_params

Establece los parámetros de este estimador.

fit()

Ajusta al modelo de regresión de núcleo de cresta

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Datos de entrenamiento. Si kernel == «precomputed» esto es una matriz de núcleo precalculada, de forma (n_samples, n_samples).

yarray-like de forma (n_samples,) o (n_samples, n_targets)

Valores objetivo

sample_weightflotante o array-like de forma (n_samples,), default=None

Ponderados individuales para cada muestra, ignorado si se pasa None.

Devuelve
selfdevuelve una instancia de sí misma.
get_params()

Obtiene los parámetros para este estimador.

Parámetros
deepbooleano, 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.

predict()

Predice utilizando el modelo de núcleo de cresta

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Muestras. Si kernel == «precomputed» esto es en su lugar una matriz de núcleo precalculada, forma = [n_samples, n_samples_fitted], donde n_samples_fitted es el número de muestras utilizadas en el ajuste de este estimador.

Devuelve
Cndarray de forma (n_samples,) o (n_samples, n_targets)

Devuelve los valores predichos.

score()

Devuelve el coeficiente de determinación \(R^2\) de la predicción.

El coeficiente \(R^2\) se define como \((1 - \frac{u}{v})\), donde \(u\) es la suma residual de cuadrados ((y_true - y_pred) ** 2).sum() y \(v\) es la suma total de cuadrados ((y_true - y_true.mean()) ** 2).sum(). La mejor puntuación posible es 1.0 y puede ser negativa (porque el modelo puede ser arbitrariamente peor). Un modelo constante que siempre predice el valor esperado de y, sin tener en cuenta las características de entrada, obtendría una puntuación \(R^2\) de 0,0.

Parámetros
Xarray-like de forma (n_samples, n_features)

Muestras de prueba. Para algunos estimadores puede ser una matriz de núcleo precalculada o una lista de objetos genéricos con forma (n_samples, n_samples_fitted), donde n_samples_fitted es el número de muestras utilizadas en el ajuste para el estimador.

yarray-like de forma (n_samples,) o (n_samples, n_outputs)

Valores verdaderos para X.

sample_weightarray-like de forma (n_samples,), default=None

Ponderados de muestras.

Devuelve
scoreflotante/flotador

\(R^2\) de self.predict(X) con respecto a y.

Notas

La puntuación \(R^2\) utilizada al llamar a score en un regresor utiliza multioutput='uniform_average' desde la versión 0.23 para mantener la coherencia con el valor predeterminado de r2_score`. Esto influye en el método score de todos los regresores de salida múltiple (excepto para MultiOutputRegressor).

set_params()

Establece los parámetros de este estimador.

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

Parámetros
**paramsdict

Parámetros del estimador.

Devuelve
selfinstancia del estimador

Instancia del estimador.

Ejemplos usando sklearn.kernel_ridge.KernelRidge