如何在sklearn中进行小批量梯度下降?

时间:2020-05-27 16:05:00

标签: python machine-learning scikit-learn logistic-regression mini-batch

是否可以在sklearn中进行小批量梯度下降以进行逻辑回归?我知道有LogisticRegression模型和SGDClassifier(可以使用log损失函数)。但是,LogisticRegression适用于整个数据集,SGDClassifier适用于逐样本(可以更正该陈述,但这是我理解随机梯度下降的方式)。

也有partial_fit方法,但这仅适用于SGD。我相信,如果我将partial_fit用于SGD,它将在每次移到下一个数据集样本时更新权重(就像普通的fit方法一样)。因此,如果我向partial_fit提供10个样本块,它将进行10个更新-但这不是我想要的。

我需要获得的是在每个第n个样本后更新权重,就像在小批量梯度下降中一样。根据我对LogisticRegression的了解,它可以使用称为warm_start的东西,这意味着将先前fit方法的权重设置为当前fit的初始权重。

如果关于warm_start的理论是正确的,我是否可以多次使用fit方法,而每次只在一个小批量生产中使用?还是有其他方法可以在sklearn中进行小批量梯度下降?

我发现this question非常相似,只是它没有讨论warm_start的想法,所以这就是我再次询问的原因。

0 个答案:

没有答案