scikit-learn适合大数据任务吗?



我正在研究一个涉及使用机器学习技术的TREC任务,其中数据集由超过5tb的web文档组成,计划从中提取词袋向量。scikit-learn有一组很好的功能,似乎符合我的需求,但我不知道它是否能够很好地扩展到处理大数据。例如,HashingVectorizer是否能够处理5tb的文档,是否可以并行化它?此外,对于大规模机器学习任务,有哪些替代方案?

HashingVectorizer将工作,如果你迭代你的数据块成批10k或100k的文档适合内存为例。

你可以将这批转换后的文档传递给支持partial_fit方法的线性分类器(例如SGDClassifierPassiveAggressiveClassifier),然后在新批次上迭代。

当你开始监控部分训练模型的准确性时,你可以开始在一个保留的验证集(例如10k文档)上对模型进行评分,而不必等待看到所有的样本。

您也可以在数据分区上的几台机器上并行执行此操作,然后平均结果coef_intercept_属性,以获得所有数据集的最终线性模型。

我在2013年3月PyData: http://vimeo.com/63269736

的演讲中讨论了这个问题。

本教程中还有关于使用IPython麻痹scikit-learn的示例代码。平行取自:https://github.com/ogrisel/parallel_ml_tutorial

相关内容

  • 没有找到相关文章

最新更新