忽略sklearn中的“ ConvergenceWarning”是否安全?

时间:2020-08-14 19:39:16

标签: python scikit-learn lasso-regression

我正在LassoCV中使用sklearn。总是有很多收敛警告。我检查了结果,结果看起来不错。所以我想知道简单地忽略这些警告是否安全。我的一些想法是:

  • 警告是否由于我的反应幅度太大而发生?也会使损失更大。
  • 在大多数情况下,增加迭代次数是否可以解决?我很犹豫,因为有时需要更长的时间才能运行,但结果并没有改善。

1 个答案:

答案 0 :(得分:0)

tl; dr 几乎总是可以的,以确保观看学习曲线。

因此,LassoCV实现了Lasso回归,可通过某种梯度下降(更精确的坐标下降,这是更简单的方法)对参数进行优化,并且该方法需要定义所有梯度方法:

  1. 步长
  2. 停止条件

最流行的停止条件可能是:

a)固定数量的步数(按时进行选择是不错的选择,因为1000步花的时间恰好是1步的x1000时间,因此很容易管理训练时间)。

b)在步骤nn-1期间损失函数的值之间的固定增量(差异)(可能具有更好的分类/回归质量)

您观察到的警告是因为LassoCV使用第一个标准(固定的步数),但还会检查第二个标准(增量),一旦达到固定步数,算法将停止,增量的默认值太小适用于大多数真实数据集。

为确保训练足够长的时间,您可以绘制学习曲线:每10-20-50步训练后的损失值,一旦达到稳定水平,您就可以停下来。