问题描述
在Scikit SGDClassifier上使用partial_fit时,成本函数收敛的迭代次数等于1,如描述中所述:
在给定的样本上执行一个随机梯度下降的时期。
在内部,此方法使用max_iter =1。因此,不能保证在一次调用之后就达到了cost函数的最小值。诸如目标收敛和提前停止之类的问题应由用户处理。
如何增加max_iter,以使成本函数得到适当优化,而不仅仅是一次迭代?或与scikit-描述有关,如何使用partial_fit处理分类器的“目标收敛”和“尽早停止”?
解决方法
您可以简单地使用fit()
方法而不是partial_fit()
方法,并通过为SGDClassifier提供想要的迭代次数提供整数值来增加max_iter
。默认值为1000次迭代。
使用max_iter参数查看文档:{{3}}
,仅使用相同的数据一次又一次地执行partial_fit()
命令,例如与实际批次。这是我的代码片段,在这里我只是围绕partial_fit()
命令编写了一个循环:
for i_iter in np.arange(iterPerBatch):
clf.partial_fit(X_batch,y_batch,classes=[0,1])
变量iterPerBatch
定义了迭代次数。