Scikit Learn - 多任务 LASSO

它允许联合拟合多个回归问题,强制所有回归问题(也称为任务)的选定特征相同。Sklearn 提供了一个名为 MultiTaskLasso 的线性模型,该模型使用混合 L1、L2 范数进行正则化训练,可以联合估计多个回归问题的稀疏系数。其中,响应 y 是一个形状为 (n_samples, n_tasks) 的二维数组。

MultiTaskLasso 的参数和属性与 Lasso 类似。唯一的区别在于 alpha 参数。在 Lasso 中,alpha 参数是一个常数,用于乘以 L1 范数;而在多任务 Lasso 中,alpha 参数是一个常数,用于乘以 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

我们可以更改参数值以获得模型所需的输出。