Python LASSO 最大非零系数个数

标签 python matlab scipy scikit-learn lasso-regression

我有一个非常大的数据集,其中包含 100 多个系数和数千个条目。因此,我想使用 Lasso 方法进行模型训练。

我目前正在研究以下 sci-kit 文档:

虽然实现看起来很简单,但我无法找到允许限制非零系数最大数量的输入参数,例如到 10。

为了更清楚,in the MatLab implementation of Lasso , 参数 'DFMax' 允许上述情况。

在任何 Python 实现中是否有这样的选项?

最佳答案

直接限制非零系数的个数是一个NP-hard问题,这也是LASSO渐近解决这个NP-hard问题的优点之一。

我不知道 DFMax 在 Matlab 中的实现,但我的建议是执行以下操作:

  1. 使用 LassoCV 找到最佳的 alpha 值。
  2. 如果非零系数的数量小于您的限制,则采用此 alpha 值。
  3. 如果非零系数的数量大于您的限制,请使用 Lasso 和递增的 alpha 列表,并将您的 LassoCV 的 alpha 作为最小值,并在非零系数的数量等于或低于您的阈值时停止。

关于Python LASSO 最大非零系数个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41901416/

相关文章:

python - 通过多个正则表达式对 DataFrame 列进行排序

matlab - 创建用于多类分类的基本前馈感知器神经网络

Matlab:在函数/脚本中运行给定目录中的所有函数

matlab - 如何以给定格式将数据保存到文本文件?

python - 如何为对数图创建每十年的点间距

python - Scipy welch 和 MATLAB pwelch 没有提供相同的答案

python - 滥用nltk的word_tokenize(sent)的后果

python - 从 pandas 日期时间列中提取唯一的每月周期

Python - 向量化滑动窗口

python - 不同函数之间的链接输出