如何使随机梯度回归器运行多达 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 或产生更好的结果?的主要内容,如果未能解决你的问题,请参考以下文章