[英]Is scikit-learn suitable for big data tasks?
我正在研究一项涉及机器学习技术的TREC任务,其中数据集包含超过5TB的Web文档,计划从中提取词袋向量。 scikit-learn
有一套很好的功能,似乎符合我的需要,但我不知道它是否能够很好地处理大数据。 例如, HashingVectorizer
能够处理HashingVectorizer
的文档,并行化它是否可行? 此外,还有哪些替代方案可用于大规模机器学习任务?
如果您将数据迭代地分块到适合内存的10k或100k文档批处理中, HashingVectorizer
将会起作用。
然后,您可以将一批转换后的文档传递给支持partial_fit
方法的线性分类器(例如SGDClassifier
或PassiveAggressiveClassifier
),然后迭代新批次。
您可以在保持验证集(例如10k文档)上开始对模型进行评分,以便在不等待看到所有样本的情况下监控部分训练模型的准确性。
您还可以在数据分区上的多台计算机上并行执行此操作,然后对得到的coef_
和intercept_
属性求平均,以获得所有数据集的最终线性模型。
我在2013年3月在PyData上发表的演讲中对此进行了讨论: http ://vimeo.com/63269736
本教程中还有一些示例代码, 用于解析scyit-learn with IPython.parallel取自: https : //github.com/ogrisel/parallel_ml_tutorial
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.