python - 我提供小批量的 scikit-learn 分类器的小批量训练

标签 python scikit-learn bigdata

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

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

是否可以在我提供小批量的地方对 scikit-learn 分类器进行小批量训练?

最佳答案

我相信 sklearn 中的一些分类器有一个 partial_fit方法。此方法允许您将小批量数据传递给分类器,以便为每个小批量执行梯度下降步骤。您只需从磁盘加载一个小批量,将其传递给 partial_fit,从内存中释放小批量,然后重复。

如果您对逻辑回归特别感兴趣,那么您需要使用 SGDClassifier ,可以设置为在 loss = 'log' 时使用逻辑回归。

您只需将小批量的特征和标签传递给 partial_fit,就像您使用 fit 一样:

clf.partial_fit(X_minibatch, y_minibatch)

更新:

我最近遇到了 dask-ml library通过将 dask 数组与 partial_fit 相结合,这将使这项任务变得非常容易。链接网页上有一个示例。

关于python - 我提供小批量的 scikit-learn 分类器的小批量训练,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46927095/

相关文章:

python-3.x - 从 sklearn 导入数据集时出错

python - 如何强制所有字符串 float ?

python - SK学习: Losing names of columns when using TfidfVectorizer

hadoop - 通过示例了解 DataTorrent

python - Pandas 数据框中的唯一字符串

python - urllib.unquote_plus(s) 不会将加号转换为空格

python - 通过 Sendgrid 发送电子邮件时无法换行

python - 从两个列表制作字典

mysql - 使用 talend 将数据从一个 mysql 数据库迁移到另一个数据库

elasticsearch - 映射elasticsearch的再造