我正在使用Scikit-Learn(sklearn)玩一对一的Logistic回归分类器.我有一个大的数据集太慢,无法一次性运行;我也想在训练进行时研究学习曲线.
我想使用批量梯度下降来分批训练我的分类器,比如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
即它正确地识别了一个训练样本(是的,我意识到用新数据评估它会更好 – 这只是一个快速的烟雾测试).
回覆.批量梯度下降:我还没有创建学习曲线,但是可以在训练数据的后续子集上重复运行吗?或者还有其他一些批量训练的功能?文档和谷歌在这件事上相当沉默.谢谢!