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 comoLogisticRegression
oLinearSVC
. 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
. Sikernel
es una cadena, entonces debe ser una de las metricas enpairwise.PAIRWISE_KERNEL_FUNCTIONS
. Sikernel
es «precomputed», X se asume que es una matriz de núcleo. Alternativamente, sikernel
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 desklearn.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
Ajusta al modelo de regresión de núcleo de cresta
Obtiene los parámetros para este estimador.
Predice utilizando el modelo de núcleo de cresta
Devuelve el coeficiente de determinación \(R^2\) de la predicción.
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 dey
, 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)
, donden_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 ay
.
Notas
La puntuación \(R^2\) utilizada al llamar a
score
en un regresor utilizamultioutput='uniform_average'
desde la versión 0.23 para mantener la coherencia con el valor predeterminado der2_score`
. Esto influye en el métodoscore
de todos los regresores de salida múltiple (excepto paraMultiOutputRegressor
).
- 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.