使用sklearn进行分类实现批量梯度下降的方法是什么? 我们为随机GD提供了 SGDClassifier ,它一次将具有一个实例,而 线性/逻辑回归 则使用正常等式。
答案 0 :(得分:1)
other similar question以及sklearn docs中指出的问题的可能答案:
SGD允许进行小批量(在线/核心外)学习,请参阅 partial_fit方法。
但是partial_fit
真的是一个不错的批处理梯度吗?
SGD:对于每个样本,使用梯度体面步骤 计算成本函数的梯度并更新权重。
批次/最小批次SGD:使用梯度适当的步骤 每批次一次 ,计算成本函数的梯度并更新权重。
所以批SGD的批量大小为1 == SGD
现在我们对定义已经很清楚了,可以研究sklearn SGDClassifier
partial_fit
的文档字符串说
在给定的样本上执行随机梯度下降的一个时期。
但这不是批处理SGD,但它看起来更像是一个辅助函数,用于与fit
运行max_iter=1
方法(实际上在文档字符串中的注释相同)。
partial_fit
用_partial_fit
Reference link呼叫max_iter==1
fit
方法调用_fit
,该方法调用_partial_fit
设置为已分配的\默认最大迭代次数的max_iter
。 Reference link
partial_fit
确实不是真正做到批次SGD,即不是计算梯度并更新每批次的重量,而是对每个样品进行此操作。
sklearn中似乎没有进行批量梯度下降的机制。