我正在使用使用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
也就是说,它可以正确地识别出训练样本(是的,我知道最好使用新数据对其进行评估-这只是一个快速的烟雾测试)。
重新批量下降:我还没有建立学习曲线,但是可以简单地反复fit训练数据的后续子集吗?还是有其他一些功能需要分批训练?该文档和Google对此都保持沉默。谢谢!