我有一个非常大的数据集,其中包含 100 多个系数和数千个条目。因此,我想使用 Lasso 方法进行模型训练。
我目前正在研究以下 sci-kit 文档:
虽然实现看起来很简单,但我无法找到允许限制非零系数最大数量的输入参数,例如到 10。
为了更清楚,in the MatLab implementation of Lasso , 参数 'DFMax' 允许上述情况。
在任何 Python 实现中是否有这样的选项?
最佳答案
直接限制非零系数的个数是一个NP-hard问题,这也是LASSO渐近解决这个NP-hard问题的优点之一。
我不知道 DFMax 在 Matlab 中的实现,但我的建议是执行以下操作:
- 使用 LassoCV 找到最佳的 alpha 值。
- 如果非零系数的数量小于您的限制,则采用此 alpha 值。
- 如果非零系数的数量大于您的限制,请使用 Lasso 和递增的 alpha 列表,并将您的 LassoCV 的 alpha 作为最小值,并在非零系数的数量等于或低于您的阈值时停止。
关于Python LASSO 最大非零系数个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41901416/