【问题标题】:What is the difference between Hashing vectorizer and Count vectorizer, when each to be used?Hashing vectorizer 和 Count vectorizer 的区别是什么?
【发布时间】:2015-07-13 11:37:10
【问题描述】:

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

任何澄清都将非常荣幸。

【问题讨论】:

    标签: machine-learning scikit-learn classification svm


    【解决方案1】:

    它们的用途相似。 documentationHashingVectorizer 提供了一些优点和缺点:

    这种策略有几个优点:

    • 内存非常低,可扩展到大型数据集,因为无需在内存中存储词汇字典
    • pickle 和 un-pickle 很快,因为它除了构造函数参数之外没有任何状态
    • 它可用于流式传输(部分拟合)或并行管道,因为在拟合期间不计算任何状态。

    还有几个缺点(与使用 CountVectorizer 和 记忆词汇):

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

    【讨论】:

      猜你喜欢
      • 2014-04-03
      • 2019-07-11
      • 2019-01-29
      • 2016-09-01
      • 2019-01-23
      • 2018-02-17
      • 2020-07-25
      • 2011-02-22
      相关资源
      最近更新 更多