我提供迷你批次的scikit-learn分类器的迷你批量培训

时间:2017-10-25 08:04:25

标签: python scikit-learn bigdata

我有一个非常大的数据集,无法加载到内存中。

我想将此数据集用作scikit-learn分类器的训练集 - 例如LogisticRegression

是否可以对我提供迷你批次的scikit-learn分类器进行小型批量培训?

2 个答案:

答案 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)