【发布时间】:2020-12-04 17:11:50
【问题描述】:
我在sklearn 中使用LassoCV。总是有很多收敛警告。我检查了结果,它们看起来不错。所以我想知道简单地忽略这些警告是否安全。我的一些想法是:
- 是否因为我的响应幅度太大而出现警告?这也会使损失更大。
- 在大多数情况下,增加迭代次数会解决吗?我犹豫是否这样做,因为有时运行需要更长的时间,但结果并没有改善。
【问题讨论】:
标签: python scikit-learn lasso-regression
我在sklearn 中使用LassoCV。总是有很多收敛警告。我检查了结果,它们看起来不错。所以我想知道简单地忽略这些警告是否安全。我的一些想法是:
【问题讨论】:
标签: python scikit-learn lasso-regression
tl;dr 几乎总是没问题,一定要注意学习曲线。
因此,LassoCV 实现了 Lasso 回归,通过某种梯度下降(坐标下降更精确,更简单的方法)优化参数,并且作为所有梯度方法,这种方法需要定义:
可能最流行的停止标准是:
a) 固定数量的步数(时间方面的好选择,因为与 1 步相比,1000 步需要 x1000 倍的时间,因此很容易管理花费在训练上的时间)。
b) 在步骤n 和n-1 期间损失函数值之间的固定增量(差异)(可能更好的分类/回归质量)
您观察到的警告是因为 LassoCV 使用第一个标准(固定步数),但也检查第二个(增量),一旦达到固定步数,算法停止,增量的默认值太小对于大多数真实数据集。
为确保您训练模型的时间足够长,您可以绘制一条学习曲线:每 10-20-50 步训练后的损失值,一旦达到平稳状态,您最好停止。
【讨论】: