【问题标题】:SGDClassifier with HashingVectorizer and TfidfTransformer带有 HashingVectorizer 和 TfidfTransformer 的 SGDClassifier
【发布时间】:2014-10-09 05:04:53
【问题描述】:

我想了解是否可以使用 HashingVectorizer 和 TfidfTransformer 训练在线 SGDClassifier(使用 partial_fit)。简单地将它们加入管道是行不通的,因为 TfidfTransformer 是有状态的,因此会破坏在线学习过程。 This post 说不可能以在线方式使用 tf-idf,但对 this post 的评论表明它可能以某种方式成为可能:“特别是如果您使用有状态转换器作为 TfidfTransformer,您将需要做几个传递您的数据”。如果不将整个训练集加载到内存中,这可能吗?如果是这样,怎么做?如果没有,是否有在大型数据集上将 HashingVectorizer 与 tf-idf 结合的替代解决方案?

【问题讨论】:

    标签: python-2.7 scikit-learn tf-idf


    【解决方案1】:

    如果不将整个训练集加载到内存中,这可能吗?

    没有。 TfidfTransformer 需要在内存中有整个 X 矩阵。您需要滚动自己的 tf-idf 估计器,使用它在一次遍历数据中计算每个词条的文档频率,然后再进行一次遍历以生成 tf-idf 特征并为它们拟合分类器。

    【讨论】:

      猜你喜欢
      • 2018-05-27
      • 2020-09-26
      • 2020-07-31
      • 2021-02-09
      • 1970-01-01
      • 1970-01-01
      • 2019-07-12
      • 2017-10-15
      • 2013-09-24
      相关资源
      最近更新 更多