我想了解是否有可能使用HashingVectorizer和TfidfTransformer训练在线SGDClassifier(与partial_fit)。简单地将它们连接到Pipeline中是行不通的,因为TfidfTransformer是有状态的,这会破坏在线学习过程。这篇文章说,这是不可能使用tf-idf在一个在线的时尚,但这篇文章的评论表明,它可能在某种程度上是可能的:"特别是如果你使用有状态的变压器作为TfidfTransformer,你将需要做几次传递你的数据"。在不将整个训练集加载到内存中的情况下,这可能吗?如果有,怎么做?如果没有,是否有一个替代的解决方案,将HashingVectorizer与tf-idf结合在大型数据集上?
不将整个训练集加载到内存中是否可能?
。TfidfTransformer
需要在内存中有整个X
矩阵。您需要滚动自己的tf-idf估计器,使用它在一次数据传递中计算每个术语的文档频率,然后进行另一次传递以生成tf-idf特征并为它们拟合分类器。