如何使随机梯度回归器运行多达 1000 个 epoch 或产生更好的结果?

Posted

技术标签:

【中文标题】如何使随机梯度回归器运行多达 1000 个 epoch 或产生更好的结果?【英文标题】:How to make stochastic gradient regressor run up to 1000 epochs or yield better results? 【发布时间】:2021-03-09 06:33:04 【问题描述】:

我正在运行来自 sklearn (docs) 的随机梯度回归器。

这是我使用的参数:

 loss: "huber", 
    "learning_rate": "adaptive", 
    "penalty": "l1", 
    "alpha": "0.001", 
    "l1_ratio": "0.75", 
    "early_stopping": "True", 
    "max_iter": "2000", 
    "n_iter_no_change": "15", 
    "validation_fraction": "0.1", 
    "warm_start": "True", 
    "tol": "0.0001", "random_state": "1"

不幸的是,我的 epoch 没有达到 2000。我知道我设置了如果它在 15 次运行后发生变化,它应该终止,我怎样才能更好地使用随机梯度?因为最终的验证不是很令人印象深刻。

   -- Epoch 38
    Norm: 38.43, NNZs: 218, Bias: 6.923232, T: 2062792, Avg. loss: 0.119096

【问题讨论】:

请更新您的帖子以包含对SGDRegressor的确切调用。 如果问题是如何从任何提前停止中取消 SGD,则删除 n_iter_no_change 并设置 tol = None。看看你是否达到了更好的当地最低标准 回答没有帮助? 【参考方案1】:

从显示的参数可以看出,您调用 SGDRegressor 时使用了early_stopping=True。您应该将其更改为early_stopping=False(或完全省略该参数,因为它的默认值确实是False - 请参阅docs)。

【讨论】:

以上是关于如何使随机梯度回归器运行多达 1000 个 epoch 或产生更好的结果?的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止梯度提升机过拟合?

机器学习算法(优化)之一:梯度下降算法随机梯度下降(应用于线性回归Logistic回归等等)

5 Logistic回归

机器学习:随机梯度下降法(线性回归中的应用)

梯度下降法随机梯度下降法小批量梯度下降法

如何使多类分类的运行时间更快?