sklearn.linear_model
.Ridge¶
- class sklearn.linear_model.Ridge¶
Mínimos cuadrados lineales con regularización l2.
Minimiza la función objetivo:
||y - Xw||^2_2 + alpha * ||w||^2_2
Este modelo resuelve un modelo de regresión donde la función de pérdida es la función lineal de mínimos cuadrados y la regularización viene dada por la norma l2. También se conoce como regresión de cresta (Ridge Regression) o regularización Tikhonov. Este estimador tiene soporte incorporado para la regresión multivariada (es decir, cuando y es un arreglo de formato 2d (n_samples, n_targets)).
Más información en el Manual de usuario.
- Parámetros
- alpha{float, ndarray of shape (n_targets,)}, default=1.0
Fuerza de regularización; debe ser un flotante positivo. La regularización mejora el condicionamiento del problema y reduce la varianza de las estimaciones. Los valores más grandes especifican una regularización más fuerte. Alpha corresponde a
1 / (2C)
en otros modelos lineales comoLogisticRegression
oLinearSVC
. Si se pasa un arreglo, se asume que las penalizaciones son específicas de los objetivos. Por lo tanto, deben corresponder en número.- fit_interceptbool, default=True
Indica si se ajusta el intercepto para este modelo. Si se establece en False, no se utilizará ningún intercepto en los cálculos (es decir, se espera que
X
yy
estén centrados).- normalizebool, default=False
Este parámetro es ignorado cuando
fit_intercept
se establece como False. Si True, los regresores X serán normalizados antes de la regresión restando la media y dividiendo por la norma l2. Si tu deseas estandarizar, por favor utilizaStandardScaler
antes de llamarfit
en un estimador connormalize=False
.- copy_Xbool, default=True
Si es True, X se copiará; si no, puede ser sobrescrito.
- max_iterint, default=None
Número máximo de iteraciones para el solucionador de gradiente conjugado. Para los solucionadores “sparse_cg” y “lsqr”, el valor predeterminado está determinado por scipy.sparse.linalg. Para los solucionadores “sag”, el valor por defecto es 1000.
- tolfloat, default=1e-3
Precisión de la solución.
- solver{“auto”, “svd”, “cholesky”, “lsqr”, “sparse_cg”, “sag”, “saga”}, default=”auto”
Solucionador a utilizar en las rutinas computacionales:
“auto” elige el solucionador automáticamente en función del tipo de datos.
svd” utiliza una descomposición de valor singular de X para calcular los coeficientes de Ridge. Es más estable para matrices singulares que “cholesky”.
“cholesky” utiliza la función estándar scipy.linalg.solve para obtener una solución de forma cerrada.
“sparse_cg” utiliza el solucionador de gradiente conjugado que se encuentra en scipy.sparse.linalg.cg. Como algoritmo iterativo, este solucionador es más apropiado que “cholesky” para datos a gran escala (posibilidad de establecer
tol
ymax_iter
).“lsqr” utiliza la rutina dedicada de mínimos cuadrados regularizados scipy.sparse.linalg.lsqr. Es la más rápida y utiliza un procedimiento iterativo.
“sag” utiliza un descenso de gradiente medio estocástico, y “saga” utiliza su versión mejorada e insesgada denominada SAGA. Ambos métodos también utilizan un procedimiento iterativo, y suelen ser más rápidos que otros solucionadores cuando tanto n_samples como n_features son grandes. Ten en cuenta que la convergencia rápida de “sag” y “saga” sólo está garantizada en características con aproximadamente la misma escala. Puedes preprocesar los datos con un escalador de sklearn.preprocessing.
Los últimos cinco solucionadores admiten datos densos y dispersos. Sin embargo, sólo “sag” y “sparse_cg” admiten datos dispersos cuando
fit_intercept
es True.Nuevo en la versión 0.17: Solucionador de descenso de gradiente medio estocástico.
Nuevo en la versión 0.19: Solucionador SAGA.
- random_stateentero, instancia de RandomState, default=None
Se utiliza cuando
solver
== “sag” o “saga” para barajar al azar los datos. Consulta Glosario para más detalles.Nuevo en la versión 0.17:
random_state
para soportar el Gradiente Medio Estocástico (Stochastic Average Gradient).
- Atributos
- coef_ndarray de forma (n_features,) o (n_targets, n_features)
Vector(es) de ponderación.
- intercept_float o ndarray de forma (n_targets,)
Término independiente en la función de decisión. Establecido como 0.0 si
fit_intercept = False
.- n_iter_None o ndarray de forma (n_targets,)
Número real de iteraciones para cada objetivo. Disponible sólo para los solucionadores sag y lsqr. Otros solucionadores devolverán None.
Nuevo en la versión 0.17.
Ver también
RidgeClassifier
Clasificador de crestas (Ridge classifier).
RidgeCV
Regresión de cresta con validación cruzada incorporada.
KernelRidge
La regresión de crestas del núcleo combina la regresión de crestas con el truco del núcleo.
Ejemplos
>>> from sklearn.linear_model import Ridge >>> 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 = Ridge(alpha=1.0) >>> clf.fit(X, y) Ridge()
Métodos
Ajusta al modelo de regresión de Ridge.
Obtiene los parámetros para este estimador.
Predice utilizando el modelo lineal.
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 Ridge.
- Parámetros
- X{ndarray, sparse matrix} de forma (n_samples, n_features)
Datos del entrenamiento
- yndarray de forma (n_samples,) o (n_samples, n_outputs)
Valores objetivo
- sample_weightfloat o ndarray de forma (n_samples,), default=None
Ponderación individual para cada muestra. Si se le da un flotante (float), cada muestra tendrá el mismo peso.
- Devuelve
- selfdevuelve una instancia de sí misma.
- get_params()¶
Obtiene los parámetros para este estimador.
- 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.
- predict()¶
Predice utilizando el modelo lineal.
- Parámetros
- Xarray-like o matriz dispersa, de forma (n_samples, n_features)
Muestras.
- Devuelve
- Carreglo, forma (n_samples,)
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 de cuadrados de los residuos
((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
Ponderaciones de la muestra.
- Devuelve
- scorefloat
\(R^2\) de
self.predict(X)
con respecto ay
.
Notas
La puntuación \(R^2\) utilizada al invocar a
score
en un regresor utilizamultioutput='uniform_average'
desde la versión 0.23 para mantener la consistencia 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 con 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 de estimador.