Scikit Learn - 多工LASSO



它允許聯合擬合多個迴歸問題,強制所有迴歸問題(也稱為任務)選擇的特徵相同。Sklearn 提供了一個名為MultiTaskLasso的線性模型,該模型使用混合 L1、L2 範數進行正則化訓練,可以聯合估計多個迴歸問題的稀疏係數。其中響應 y 是形狀為 (n_samples, n_tasks) 的二維陣列。

MultiTaskLasso引數屬性Lasso類似。唯一的區別在於 alpha 引數。在 Lasso 中,alpha 引數是一個乘以 L1 範數的常數,而在多工 Lasso 中,它是一個乘以 L1/L2 項的常數。

並且,與 Lasso 相反,MultiTaskLasso 沒有precompute屬性。

實現示例

下面的 Python 指令碼使用MultiTaskLasso線性模型,該模型進一步使用座標下降作為演算法來擬合係數。

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

輸出

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)

示例

現在,一旦擬合,模型就可以預測新的值,如下所示:

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

輸出

array([[0.53033009, 0.53033009]])

示例

對於上面的示例,我們可以使用以下 Python 指令碼來獲取權重向量:

MTLReg.coef_

輸出

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

示例

類似地,我們可以使用以下 Python 指令碼來獲取截距值:

MTLReg.intercept_

輸出

array([0.53033009, 0.53033009])

示例

我們可以使用以下 Python 指令碼來獲取達到指定容差的總迭代次數:

MTLReg.n_iter_

輸出

2

我們可以更改引數的值以從模型中獲得所需的輸出。

廣告
© . All rights reserved.