Don*_*beo 32 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)
Run Code Online (Sandbox Code Playgroud)
也许sklearn不是这类东西的正确工具?让我知道.
Ale*_*ier 15
我已经使用了几个具有核外功能的scikit-learn分类器来训练线性模型:随机梯度,感知器和被动攻击以及多个Naive Bayes在超过30Gb的Kaggle数据集上.所有这些分类器都共享你提到的partial_fit方法.有些人表现得比其他人好.
你可以在这篇文章中找到方法论,案例研究和一些好的资源:http: //www.opendatascience.com/blog/riding-on-large-data-with-scikit-learn/
use*_*942 11
我认为sklearn适用于更大的数据.如果您选择的算法支持partial_fit或在线学习方法,那么您就会走上正轨.有一点需要注意的是,你的大小可能会影响你的成功.
这个链接可能很有用...... 使用python和numpy中的大数据,没有足够的ram,如何在光盘上保存部分结果?
我同意h5py是有用的,但您可能希望使用已经在您的箭袋中的工具.
您可以做的另一件事是随机选择是否在csv文件中保留一行...并将结果保存到.npy文件中,以便加载更快.通过这种方式,您可以获得数据样本,这样您就可以开始使用所有算法...并处理更大的数据问题(或者根本不处理!有时采用良好方法的样本就足够了取决于你想要的).