2024-05-28 20:36:59 发布
网友
我正在进行一项涉及使用机器学习技术的TREC任务,其中数据集由超过5tb的web文档组成,计划从这些文档中提取单词向量包。scikit-learn有一组很好的功能,似乎适合我的需要,但我不知道它是否能够很好地扩展以处理大数据。例如,HashingVectorizer是否能够处理5万亿字节的文档,并行化是否可行?此外,对于大规模的机器学习任务,还有哪些选择?
scikit-learn
HashingVectorizer
HashingVectorizer如果您迭代地将数据分块到一批10k或100k文档中(例如,这些文档适合内存),那么它将起作用。
然后,您可以将转换后的文档批传递给支持partial_fit方法的线性分类器(例如SGDClassifier或PassiveAggressiveClassifier),然后在新批上迭代。
partial_fit
SGDClassifier
PassiveAggressiveClassifier
您可以在不等待看到所有样本的情况下,开始在保持有效的集合(例如10k文档)上对模型进行评分,以监控部分训练模型的准确性。
您还可以在数据分区上的多台计算机上并行执行此操作,然后对结果的coef_和intercept_属性进行平均,以获得所有数据集的最终线性模型。
coef_
intercept_
我在2013年3月在PyData的演讲中讨论了这个问题:http://vimeo.com/63269736
这个tutorial on paralyzing scikit-learn with IPython.parallel中也有来自https://github.com/ogrisel/parallel_ml_tutorial的示例代码
HashingVectorizer
如果您迭代地将数据分块到一批10k或100k文档中(例如,这些文档适合内存),那么它将起作用。然后,您可以将转换后的文档批传递给支持
partial_fit
方法的线性分类器(例如SGDClassifier
或PassiveAggressiveClassifier
),然后在新批上迭代。您可以在不等待看到所有样本的情况下,开始在保持有效的集合(例如10k文档)上对模型进行评分,以监控部分训练模型的准确性。
您还可以在数据分区上的多台计算机上并行执行此操作,然后对结果的
coef_
和intercept_
属性进行平均,以获得所有数据集的最终线性模型。我在2013年3月在PyData的演讲中讨论了这个问题:http://vimeo.com/63269736
这个tutorial on paralyzing scikit-learn with IPython.parallel中也有来自https://github.com/ogrisel/parallel_ml_tutorial的示例代码
相关问题 更多 >
编程相关推荐