我正在使用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
也就是说,它正确地识别了一个训练样本(是的,我意识到最好用新的数据来评估它——这只是一个快速的烟雾测试)。
R.e.批量梯度下降:我还没有达到创建学习曲线的程度,但是我们可以简单地在随后的训练数据子集上重复运行fit?或者还有其他的功能可以分批训练吗?文档和谷歌对此事相当沉默。谢谢!