如何解决忽略sklearn中的“ ConvergenceWarning”是否安全?
我正在LassoCV
中使用sklearn
。总是有很多收敛警告。我检查了结果,结果看起来不错。所以我想知道简单地忽略这些警告是否安全。我的一些想法是:
- 警告是否由于我的反应幅度太大而发生?也会使损失更大。
- 在大多数情况下,增加迭代次数是否可以解决?我很犹豫,因为有时需要更长的时间才能运行,但结果并没有改善。
解决方法
tl; dr 几乎总是可以的,以确保观看学习曲线。
因此,LassoCV实现了Lasso回归,可通过某种梯度下降(更精确的坐标下降,这是更简单的方法)对参数进行优化,并且该方法需要定义所有梯度方法:
- 步长
- 停止条件
最流行的停止条件可能是:
a)固定数量的步数(按时进行选择是不错的选择,因为1000步花的时间恰好是1步的x1000时间,因此很容易管理训练时间)。
b)在步骤n
和n-1
期间损失函数的值之间的固定增量(差异)(可能具有更好的分类/回归质量)
您观察到的警告是因为LassoCV使用第一个标准(固定的步数),但还会检查第二个标准(增量),一旦达到固定步数,算法将停止,增量的默认值太小适用于大多数真实数据集。
为确保训练足够长的时间,您可以绘制学习曲线:每10-20-50步训练后的损失值,一旦达到稳定水平,您就可以停下来。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。