我有兴趣使用组套索解决我遇到的问题。 Here是算法的链接。我知道R有一个光滑的实现,但很想知道python是否有类似的东西。
我认为sklearn.linear_model.MultiTaskLasso
可能有点相似,但我不确定。任何人都可以对此有所了解吗?
答案 0 :(得分:1)
据我所知,scikit-learn不提供此实现,我也对此进行了研究。
| ID 1 | ID 2 | ID 3 | price_8 | price_10 |
|:-----------|------------:|:------------:|:------------:|:------------:|
| 00001 | 01 | 0001 |5000 | 6000 |
| 00001 | 02 | 0001 |null | null |
| 00001 | 01 | 0002 |null | null |
做其他事情。从documentation:
“ MultiTaskLasso是一个线性模型,用于联合估计多个回归问题的稀疏系数:MultiTaskLasso
是形状为(y
的2D数组。约束是,所有要素的选定特征都相同回归问题,也称为任务。”
换句话说,n_samples, n_tasks
是套索的实现,它可以同时预测多个目标(因此MultiTaskLasso
是2D数组)。已知此问题的另一种方法是“多输出回归”或“ multi-target regression'”。如果任务相关,则此类方法可以改进尝试分别为每个任务或目标建模的方法。
答案 1 :(得分:1)
在this issue in the sklearn repo中讨论了是否在sklearn中实施Group Lasso,其中到目前为止的结论是,如果将其包含在master中,那么它就不足以证明需要的维护。 / p>
因此,我实现了一个GroupLasso
类,该类在我的python / cython软件包celer中传递了sklearn的check_estimator()
,该类替代了sklearn的Lasso,MultitaskLasso,稀疏Logistic回归更快的求解器。
求解器使用坐标下降,工作集方法和外推法,这应该可以解决具有数百万个特征的问题。
它支持稀疏和密集数据,以及居中和规范化(居中的稀疏数据并不重要,因为它破坏了设计矩阵的稀疏性),并带有GroupLassoCV类来执行交叉验证。 在celer's documentation, there is an example中显示了如何使用它。