如何减少Scikit学习矢量器的内存使用



TFIDFVectorizer占用了太多内存,矢量化470MB的100k文档需要超过6GB的内存,如果我们处理2100万个文档,它将无法容纳60GB的RAM。

所以我们选择了HashingVectorizer,但仍然需要知道如何分发哈希矢量器。Fit和partial Fit什么都不做,那么如何使用巨大语料库呢?

我强烈建议您在大型数据集上拟合模型时使用HashingVectorizer。

HashingVectorizer是独立于数据的,只有来自vectorizer.get_params()的参数是重要的。因此(取消)pickle`HashingVectorizer实例应该非常快。

基于词汇表的矢量器更适合在小型数据集上进行探索性分析。

克服HashingVectorizer无法解释IDF的一种方法是将数据索引到elasticsearch或lucene中,并从中检索术语向量,使用这些术语向量可以计算Tf-IDF。

相关内容

  • 没有找到相关文章

最新更新