我有一个非常大的数据集,无法加载到内存中。
我想将此数据集用作scikit-learn分类器的训练集 - 例如LogisticRegression
。
是否可以对我提供迷你批次的scikit-learn分类器进行小型批量培训?
答案 0 :(得分:7)
我相信sklearn
中的某些分类符有partial_fit
方法。此方法允许您将小批量数据传递给分类器,以便为每个小批量执行梯度下降步骤。您只需从磁盘加载一个小批量,将其传递给partial_fit
,从内存中释放小批量,然后重复。
如果您对Logistic回归特别感兴趣,那么您希望使用SGDClassifier
,可以设置loss = 'log'
时使用逻辑回归。
您只需将您的小批量广告的功能和标签传递给partial_fit
,方法与使用fit
相同:
clf.partial_fit(X_minibatch, y_minibatch)
<强>更新强>:
我最近遇到了dask-ml
library,通过将dask
数组与partial_fit
相结合,可以轻松完成此任务。链接网页上有一个示例。
答案 1 :(得分:2)