Aprender Scikit - LASSO

LASSO (Operador de selección y contracción mínima absoluta)

LASSO es la técnica de regularización que realiza la regularización L1. Modifica la función de pérdida sumando la penalización (cantidad de contracción) equivalente a la suma del valor absoluto de los coeficientes.

$$ \ Displaystyle \ sum \ limits_ {j = 1} ^ m \ left (Y_ {i} -W_ {0} - \ Displaystyle \ sum \ limits_ {i = 1} ^ nW_ {i} X_ {ji} \ right ) ^ {2} + \ alpha \ displaystyle \ sum \ limits_ {i = 1} ^ n | W_i | = pérdida _ {-} función + \ alpha \ displaystyle \ sum \ limits_ {i = 1} ^ n | W_i | $$

sklearn.linear_model. Lasso es un modelo lineal, con un término de regularización agregado, que se utiliza para estimar coeficientes dispersos.

Parámetros

La siguiente tabla consta de los parámetros utilizados por Lasso módulo -

No Señor Descripción de parámetros
1

alpha - flotante, opcional, predeterminado = 1.0

Alpha, la constante que multiplica el término L1, es el parámetro de ajuste que decide cuánto queremos penalizar al modelo. El valor predeterminado es 1.0.

2

fit_intercept- Booleano, opcional. Predeterminado = Verdadero

Este parámetro especifica que se debe agregar una constante (sesgo o intersección) a la función de decisión. No se utilizará ninguna intersección en el cálculo, si se establece en falso.

3

tol - flotador, opcional

Este parámetro representa la tolerancia para la optimización. lostol El valor y las actualizaciones se compararían y, si se encuentran actualizaciones más pequeñas que tol, la optimización comprueba la optimización de la brecha dual y continúa hasta que sea menor que tol.

4

normalize - Booleano, opcional, predeterminado = Falso

Si este parámetro se establece en Verdadero, el regresor X se normalizará antes de la regresión. La normalización se realizará restando la media y dividiéndola por la norma L2. Sifit_intercept = False, este parámetro será ignorado.

5

copy_X - Booleano, opcional, predeterminado = Verdadero

De forma predeterminada, es verdadero, lo que significa que se copiará X. Pero si se establece en falso, X puede sobrescribirse.

6

max_iter - int, opcional

Como sugiere el nombre, representa el número máximo de iteraciones tomadas para los solucionadores de gradientes conjugados.

7

precompute - Verdadero | Falso | similar a una matriz, predeterminado = Falso

Con este parámetro podemos decidir si usar una matriz de Gram precalculada para acelerar el cálculo o no.

8

warm_start - bool, opcional, predeterminado = falso

Con este parámetro establecido en True, podemos reutilizar la solución de la llamada anterior para ajustarla como inicialización. Si elegimos default, es decir, falso, borrará la solución anterior.

9

random_state - int, instancia de RandomState o None, opcional, predeterminado = ninguno

Este parámetro representa la semilla del número pseudoaleatorio generado que se usa mientras se barajan los datos. Las siguientes son las opciones:

  • int- En este caso, random_state es la semilla utilizada por el generador de números aleatorios.

  • RandomState instance - En este caso, random_state es el generador de números aleatorios.

  • None - En este caso, el generador de números aleatorios es la instancia de RandonState utilizada por np.random.

10

selection - str, predeterminado = 'cíclico'

  • Cyclic - El valor predeterminado es cíclico, lo que significa que las funciones se repetirán secuencialmente de forma predeterminada.

  • Random - Si configuramos la selección como aleatoria, se actualizará un coeficiente aleatorio en cada iteración.

Atributos

La siguiente tabla consta de los atributos utilizados por Lasso módulo -

No Señor Atributos y descripción
1

coef_ - matriz, forma (n_features,) o (n_target, n_features)

Este atributo proporciona los vectores de peso.

2

Intercept_- flotar | matriz, forma = (n_destinos)

Representa el término independiente en función de decisión.

3

n_iter_ - int o similar a una matriz, forma (n_targets)

Proporciona el número de iteraciones ejecutadas por el solucionador de descenso de coordenadas para alcanzar la tolerancia especificada.

Ejemplo de implementación

La siguiente secuencia de comandos de Python usa el modelo Lasso, que además usa el descenso de coordenadas como algoritmo para ajustar los coeficientes:

from sklearn import linear_model
Lreg = linear_model.Lasso(alpha = 0.5)
Lreg.fit([[0,0], [1, 1], [2, 2]], [0, 1, 2])

Salida

Lasso(alpha = 0.5, copy_X = True, fit_intercept = True, max_iter = 1000,
   normalize = False, positive = False, precompute = False, random_state = None,
   selection = 'cyclic', tol = 0.0001, warm_start = False)

Ejemplo

Ahora, una vez ajustado, el modelo puede predecir nuevos valores de la siguiente manera:

Lreg.predict([[0,1]])

Salida

array([0.75])

Ejemplo

Para el ejemplo anterior, podemos obtener el vector de peso con la ayuda del siguiente script de Python:

Lreg.coef_

Salida

array([0.25, 0. ])

Ejemplo

Del mismo modo, podemos obtener el valor de la intercepción con la ayuda de la siguiente secuencia de comandos de Python:

Lreg.intercept_

Salida

0.75

Ejemplo

Podemos obtener el número total de iteraciones para obtener la tolerancia especificada con la ayuda del siguiente script de Python:

Lreg.n_iter_

Salida

2

Podemos cambiar los valores de los parámetros para obtener el resultado deseado del modelo.