我正在使用 Scikit-Learn (sklearn) 使用一对多的逻辑回归分类器。我有一个大型数据集,它太慢而无法一次性运行;我还想随着培训的进行研究学习曲线。
我想使用批量梯度下降来批量训练我的分类器,比如 500 个样本。有什么方法可以使用 sklearn 来做到这一点,还是我应该放弃 sklearn 并“自己动手”?
这是我到目前为止所拥有的:
from sklearn.linear_model import LogisticRegression
from sklearn.multiclass import OneVsRestClassifier
# xs are subsets of my training data, ys are ground truth for same; I have more
# data available for further training and cross-validation:
xs.shape, ys.shape
# => ((500, 784), (500))
lr = OneVsRestClassifier(LogisticRegression())
lr.fit(xs, ys)
lr.predict(xs[0,:])
# => [ 1.]
ys[0]
# => 1.0
即它正确地识别了一个训练样本(是的,我意识到用新数据评估它会更好——这只是一个快速的烟雾测试)。
重新批量梯度下降:我还没有创建学习曲线,但是可以简单地fit
在训练数据的后续子集上重复运行吗?还是有其他功能可以批量训练?文档和谷歌对此事相当沉默。谢谢!