如何为sklearn.linear_model.SGDRegressor设置参数使其执行批处理梯度下降?
我想用批处理梯度下降来解决线性回归问题。我需要使SGD的行为像批处理梯度下降,这应该做(我认为)通过使它修改模型在一个时代的结束。它能以某种方式被参数化成那样吗?
发布于 2020-04-23 14:41:14
我需要使SGD的行为像批处理梯度下降,这应该做(我认为)通过使它修改模型在一个时代的结束。
您不能这样做;从文档中可以清楚地看到:
每次估计每个样本的损耗梯度,并沿此过程更新模型。
虽然在SGDClassifier文档中提到
SGD允许小型批次(在线/外核)学习。
这大概也适用于SGDRegressor,实际上意味着您可以使用partial_fit方法在不同的批中提供数据;然而,计算(和更新)总是在每个示例中执行。
如果您确实需要使用GD执行线性回归,您可以在Keras或Tensorflow中轻松地完成,组装一个LR模型并使用与整个培训样本相等的批处理大小。
https://stackoverflow.com/questions/61388580
复制相似问题