Scikit Learn - LASSO multitarea

Permite ajustar múltiples problemas de regresión haciendo que las características seleccionadas sean las mismas para todos los problemas de regresión, también llamados tareas. Sklearn proporciona un modelo lineal llamadoMultiTaskLasso, entrenado con una norma mixta L1, L2 para regularización, que estima coeficientes escasos para problemas de regresión múltiple de manera conjunta. En esto, la respuesta y es una matriz 2D de formas (n_samples, n_tasks).

los parameters y el attributes para MultiTaskLasso son como los de Lasso. La única diferencia está en el parámetro alfa. En Lasso, el parámetro alfa es una constante que multiplica la norma L1, mientras que en Multi-task Lasso es una constante que multiplica los términos L1 / L2.

Y, a diferencia de Lasso, MultiTaskLasso no tiene precompute atributo.

Ejemplo de implementación

Siguiendo los usos del script de Python MultiTaskLasso modelo lineal que utiliza además el descenso de coordenadas como algoritmo para ajustar los coeficientes.

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

Salida

MultiTaskLasso(alpha = 0.5, copy_X = True, fit_intercept = True, max_iter = 1000,
   normalize = 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:

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

Salida

array([[0.53033009, 0.53033009]])

Ejemplo

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

MTLReg.coef_

Salida

array([[0.46966991, 0. ],
[0.46966991, 0. ]])

Ejemplo

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

MTLReg.intercept_

Salida

array([0.53033009, 0.53033009])

Ejemplo

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

MTLReg.n_iter_

Salida

2

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