Hashing vectorizer和Count vectorizer之间有什么区别?

时间:2015-05-04 06:49:13

标签: machine-learning scikit-learn classification svm

我正在尝试使用scikit-learn中的各种SVM变体以及CountVectorizer和HashingVectorizer。他们在不同的例子中使用fit或fit_transform,这让我很困惑。

任何澄清都会非常荣幸。

1 个答案:

答案 0 :(得分:14)

他们有着类似的目的。 documentationhttp://static.yourhost.com/提供了一些专业人士和对象:&#p>

  

这种策略有几个优点:

     
      
  • 由于不需要在内存中存储词汇词典,因此对大型数据集的内存可扩展性非常低
  •   
  • 除了构造函数参数
  • 之外,它没有任何状态,因此很快就会发腌和解腌   
  • 它可用于流媒体(部分拟合)或并行管道,因为在拟合期间没有计算状态。
  •   
     

还有一些缺点(vs使用带有一个的CountVectorizer   记忆词汇表:

     
      
  • 没有办法计算逆变换(从特征索引到字符串特征名称),这在尝试时可能是个问题   内省哪些特征对模型最重要。
  •   
  • 可能存在冲突:不同的令牌可以映射到同一个要素索引。但是在实践中,这很少是一个问题   n_features足够大(例如2 ** 18用于文本分类   问题)。
  •   
  • 没有IDF加权,因为这会使变压器有状态。
  •