【问题标题】:Is it safe to ignore the "ConvergenceWarning" in sklearn?忽略sklearn中的“ConvergenceWarning”是否安全?
【发布时间】:2020-12-04 17:11:50
【问题描述】:

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

  • 是否因为我的响应幅度太大而出现警告?这也会使损失更大。
  • 在大多数情况下,增加迭代次数会解决吗?我犹豫是否这样做,因为有时运行需要更长的时间,但结果并没有改善。

【问题讨论】:

    标签: python scikit-learn lasso-regression


    【解决方案1】:

    tl;dr 几乎总是没问题,一定要注意学习曲线。

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

    1. 步长
    2. 停止标准

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

    a) 固定数量的步数(时间方面的好选择,因为与 1 步相比,1000 步需要 x1000 倍的时间,因此很容易管理花费在训练上的时间)。

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-13
      • 1970-01-01
      • 2019-04-29
      • 2011-01-12
      相关资源
      最近更新 更多