sklearn.linear_model
.LassoLarsCV¶
- class sklearn.linear_model.LassoLarsCV¶
Validación cruzada Lasso, utilizando el algoritmo LARS.
Ver la entrada del glosario para el cross-validation estimator.
El objetivo de optimización para Lasso es:
(1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1
Lee más en el Manual de usuario.
- Parámetros
- fit_interceptbool, default=True
si se calcula 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 los datos estén centrados).
- verbosebool o int, default=False
Establece la cantidad de verbosidad.
- max_iterint, default=500
Número máximo de iteraciones a realizar.
- normalizebool, default=True
Este parámetro es ignorado cuando
fit_intercept
se establece en False. Si es True, los regresores X serán normalizados antes de la regresión restando la media y dividiendo por la norma l2. Si deseas estandarizar, por favor utilizaStandardScaler
antes de invocar afit
en un estimador connormalize=False
.- precomputebool o “auto” , default=”auto”
Si se utiliza una matriz de Gram precalculada para acelerar los cálculos. Si se establece como
'auto'
, nosotros decidimos. La matriz de Gram no se puede pasar como argumento ya que sólo utilizaremos subconjuntos de X.- cventero, generador de validación cruzada o un iterable, default=None
Determina la estrategia de división de la validación cruzada. Las posibles entradas para cv son:
None, para utilizar la validación cruzada de 5 partes por defecto,
entero, para especificar el número de partes.
Un iterable que produce divisiones (train, test) como arreglos de índices.
Para entradas None/de enteros se utiliza
KFold
.Consulta el Manual de usuario para las diversas estrategias de validación cruzada que pueden ser utilizadas aquí.
Distinto en la versión 0.22: El valor predeterminado de
cv
, None, cambió de 3 partes a 5 partes.- max_n_alphasint, default=1000
El número máximo de puntos en el camino utilizado para calcular los residuos en la validación cruzada
- n_jobsint o None, default=None
Número de CPUs a utilizar durante la validación cruzada.
None
significa 1 a menos que esté en un contextojoblib.parallel_backend
.-1
significa utilizar todos los procesadores. Ver el Glosario para más detalles.- epsfloat, default=np.finfo(float).eps
La regularización de máquina-precisión en el cálculo de los factores diagonales de Cholesky. Aumenta este parámetro para sistemas muy mal condicionados. A diferencia del parámetro
tol
en algunos algoritmos basados en la optimización iterativa, este parámetro no controla la tolerancia de la optimización.- copy_Xbool, default=True
Si es True, X se copiará; si no, puede ser sobrescrito.
- positivebool, default=False
Restringe los coeficientes para que sean >= 0. Ten en cuenta que podrías querer eliminar fit_intercept que está establecido como True por defecto. Bajo la restricción positiva los coeficientes del modelo no convergen a la solución de mínimos cuadrados ordinarios para valores pequeños de alfa. Sólo los coeficientes hasta el valor más pequeño de alfa (
alphas_[alphas_ > 0.].min()
cuando fit_path=True) alcanzados por el algoritmo de Lars-Lasso por pasos suelen estar en congruencia con la solución del estimador Lasso de descenso coordinado. En consecuencia, el uso de LassoLarsCV sólo tiene sentido para los problemas en los que se espera y/o se alcanza una solución dispersa.
- Atributos
- coef_array-like de forma (n_features,)
vector de parámetros (w en la fórmula de formulación)
- intercept_float
término independiente en la función de decisión.
- coef_path_array-like de forma (n_features, n_alphas)
los valores variables de los coeficientes a lo largo del camino
- alpha_float
el parámetro de regularización estimado alfa
- alphas_array-like de forma (n_alphas,)
los diferentes valores de alfa a lo largo del camino
- cv_alphas_array-like de forma (n_cv_alphas,)
todos los valores de alfa a lo largo del camino para las diferentes partes
- mse_path_array-like de forma (n_folds, n_cv_alphas)
el error cuadrático medio en la salida para cada parte a lo largo del camino (valores alfa dados por
cv_alphas
)- n_iter_array-like o int
el número de iteraciones ejecutadas por Lars con el alfa óptimo.
- active_list de int
Índices de las variables activas al final del camino.
Notas
El objeto resuelve el mismo problema que el objeto LassoCV. Sin embargo, a diferencia de LassoCV, encuentra los valores de las alfas relevantes por sí mismo. En general, debido a esta propiedad, será más estable. Sin embargo, es más frágil a los conjuntos de datos con multicolinealidad fuerte.
Es más eficiente que LassoCV si sólo se selecciona un número pequeño de características en comparación con el número total, por ejemplo, si hay muy pocas muestras en comparación con el número de características.
Ejemplos
>>> from sklearn.linear_model import LassoLarsCV >>> from sklearn.datasets import make_regression >>> X, y = make_regression(noise=4.0, random_state=0) >>> reg = LassoLarsCV(cv=5).fit(X, y) >>> reg.score(X, y) 0.9992... >>> reg.alpha_ 0.0484... >>> reg.predict(X[:1,]) array([-77.8723...])
Métodos
Ajusta el modelo utilizando X, y como datos de entrenamiento.
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 el modelo utilizando X, y como datos de entrenamiento.
- Parámetros
- Xarray-like de forma (n_samples, n_features)
Datos de entrenamiento.
- yarray-like de forma (n_samples,)
Valores objetivo.
- Devuelve
- selfobject
devuelve 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
Los nombres de los 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
- Carray, 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 de cuadrados total((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 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.