5
我正在尝试各种支持Scikit的SVM变体以及CountVectorizer和HashingVectorizer。他们在不同的例子中使用fit或fit_transform,使我困惑的是什么时候使用。Hashing vectorizer和Count vectorizer之间的区别是什么?
任何澄清将非常荣幸。
我正在尝试各种支持Scikit的SVM变体以及CountVectorizer和HashingVectorizer。他们在不同的例子中使用fit或fit_transform,使我困惑的是什么时候使用。Hashing vectorizer和Count vectorizer之间的区别是什么?
任何澄清将非常荣幸。
他们服务于类似的目的。该documentation提供了一些亲的和反对的为HashedVectorizer
:
这种策略有几个优点:
- 这是非常低的内存可扩展到大型数据集,因为没有必要在内存中存储词汇词典
- 因为除了构造函数参数外,它不包含任何状态,因此它可以快速进行腌泡和取消腌制。因为在拟合过程中没有计算出状态,所以它可以用于流式(部分拟合)或并行流水线。
也有几个缺点的(相对于使用CountVectorizer与 内存词汇):
- 没有办法计算逆变换(从特征指数为字符串功能名称)当试图反思哪些特征对模型最重要时,这可能是一个问题。
- 可能存在冲突:不同的记号可以映射到相同的特征索引。然而在实践中,如果n_features足够大(例如2 ** 18用于文本分类 问题),这很少成为问题。
- 没有IDF加权,因为这会使变压器变为有状态。