忽略 sklearn 中的 "ConvergenceWarning" 是否安全?

Is it safe to ignore the "ConvergenceWarning" in sklearn?

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

tl;dr几乎总是很好,可以肯定的是观察学习曲线。

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

  1. 步长
  2. 停止条件

可能最流行的停止标准是:

a) 固定数量的步数(不错的选择 time-wise,因为 1000 步与 1 步相比正好需要 x1000 倍的时间,因此很容易管理训练所花费的时间)。

b) 在步骤 nn-1 期间损失函数值之间的固定增量(差异)(可能更好 classification/regression 质量)

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

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