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
我们可以更改参数值以获得模型所需的输出。

