Scikit Learn - Multi-task LASSO

Permette di adattare più problemi di regressione imponendo congiuntamente che le caratteristiche selezionate siano le stesse per tutti i problemi di regressione, chiamati anche task. Sklearn fornisce un modello lineare denominatoMultiTaskLasso, addestrato con una norma mista L1, L2 per la regolarizzazione, che stima congiuntamente coefficienti sparsi per problemi di regressione multipla. In questo la risposta y è un array 2D di forma (n_samples, n_tasks).

Il parameters e il attributes per MultiTaskLasso sono come quello di Lasso. L'unica differenza è nel parametro alpha. In Lazo il parametro alfa è una costante che moltiplica la norma L1, mentre in Multi-task Lasso è una costante che moltiplica i termini L1 / L2.

E, contrariamente a Lasso, MultiTaskLasso non ha precompute attributo.

Esempio di implementazione

Seguendo gli usi dello script Python MultiTaskLasso modello lineare che utilizza ulteriormente la discesa delle coordinate come algoritmo per adattare i coefficienti.

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

Produzione

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)

Esempio

Ora, una volta adattato, il modello può prevedere nuovi valori come segue:

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

Produzione

array([[0.53033009, 0.53033009]])

Esempio

Per l'esempio sopra, possiamo ottenere il vettore di peso con l'aiuto del seguente script python:

MTLReg.coef_

Produzione

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

Esempio

Allo stesso modo, possiamo ottenere il valore di intercettazione con l'aiuto del seguente script python -

MTLReg.intercept_

Produzione

array([0.53033009, 0.53033009])

Esempio

Possiamo ottenere il numero totale di iterazioni per ottenere la tolleranza specificata con l'aiuto del seguente script python -

MTLReg.n_iter_

Produzione

2

Possiamo modificare i valori dei parametri per ottenere l'output desiderato dal modello.