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:
|
10 | selection - str, predeterminado = 'cíclico'
|
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.