python - sklearn 和大型数据集

标签 python bigdata scikit-learn

我有一个 22 GB 的数据集。我想在我的笔记本电脑上处理它。当然,我无法将其加载到内存中。

我经常使用 sklearn,但数据集要小得多。

在这种情况下,经典方法应该是这样的。

只读部分数据 -> 部分训练您的估计器 -> 删除数据 -> 读取其他部分数据 -> 继续训练您的估计器。

我已经看到一些 sklearn 算法具有部分拟合方法,应该允许我们使用数据的各种子样本训练估计器。

现在我想知道为什么在 sklearn 中这样做很简单? 我正在寻找类似的东西

r = read_part_of_data('data.csv')
m = sk.my_model
`for i in range(n):
     x = r.read_next_chunk(20 lines)
     m.partial_fit(x)

m.predict(new_x)

也许 sklearn 不是处理这类事情的正确工具? 告诉我。

最佳答案

我在超过 30Gb 的 Kaggle 数据集上使用了几个具有核外功能的 scikit-learn 分类器来训练线性模型:随机梯度、感知器和被动攻击以及多项朴素贝叶斯。所有这些分类器都共享您提到的 partial_fit 方法。不过,有些人的表现比其他人好。

您可以在这篇文章中找到方法、案例研究和一些很好的资源: http://www.opendatascience.com/blog/riding-on-large-data-with-scikit-learn/

关于python - sklearn 和大型数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23872942/

相关文章:

python - Python 中的正则表达式?

python - Pyinstaller: 无法打开共享对象 libpython3.5m.so.1.0

hadoop - Hadoop Zookeeper理解

python - 裤子:无法获得 lxml 分发 pip 要求

Python 在函数内导入库以实现多线程

scala - Spark 作业未在本地并行化(使用本地文件系统中的 Parquet + Avro)

json - 为嵌套的json数据创建Hive表

python-3.x - Python3 : ValueError: too many values to unpack (expected 2)

scikit-learn - 我们可以选择在 sklearn 中使用什么决策树算法吗?

apache-spark - Spark.ml 回归不计算与 scikit-learn 相同的模型