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 utiliza StandardScaler antes de invocar a fit en un estimador con normalize=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.

  • separador de CV,

  • 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 contexto joblib.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.

Ver también

lars_path, LassoLars, LarsCV, LassoCV

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

fit

Ajusta el modelo utilizando X, y como datos de entrenamiento.

get_params

Obtiene los parámetros para este estimador.

predict

Predice utilizando el modelo lineal.

score

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

set_params

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 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

Ponderaciones de la muestra.

Devuelve
scorefloat

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

Notas

La puntuación \(R^2\) utilizada al invocar a score en un regresor utiliza multioutput='uniform_average' desde la versión 0.23 para mantener la consistencia 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 utilizando sklearn.linear_model.LassoLarsCV