哈希向量化器和计数向量化器有什么区别?它们应该在什么情况下使用?

6
我正在尝试使用scikit-learn中的不同SVM变种,以及CountVectorizer和HashingVectorizer。在不同的示例中,它们使用fit或fit_transform,让我很困惑应该何时使用哪个。
希望能得到澄清,谢谢。
1个回答

16

他们具有类似的作用。文档HashingVectorizer 提供了一些优缺点:

这种策略有几个优点:
  • 它非常适用于大数据集,因为不需要在内存中存储词汇字典,所以内存占用很低。
  • 它的pickle和un-pickle速度很快,因为除了构造函数参数之外没有任何状态。
  • 它可以在流式(部分拟合)或并行管道中使用,因为在拟合过程中没有计算状态。
但是与使用具有内存词汇表的CountVectorizer相比,也有一些缺点:
  • 无法计算逆变换(从特征索引到字符串特征名称),这可能会在尝试检查哪些特征对模型最重要时成为问题。
  • 可能会发生冲突:不同的标记可以映射到相同的特征索引。然而,在实践中,如果n_features足够大(例如,文本分类问题的2 ** 18),这很少是一个问题。
  • 没有IDF加权,因为这会使转换器具有状态。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接