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

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

广告