Scikit learn tfidf是否应结合列车和测试集生成?

Scikit learn tfidf是否应结合列车和测试集生成?,scikit-learn,classification,tf-idf,Scikit Learn,Classification,Tf Idf,在上面的示例中,分别为训练语料库和测试语料库生成tfidf。它不应该一起生成吗?因为单独处理列车和测试时的idf与一起处理时的idf不同?谢谢 # Vectorize the training data X_train = vectorizer.fit_transform(train_corpus) # Vectorize the testing data X_test = vectorizer.transform(test_corpus) 您不能使用测试来创建TF-IDF模型,因为您不允许

在上面的示例中,分别为训练语料库和测试语料库生成tfidf。它不应该一起生成吗?因为单独处理列车和测试时的idf与一起处理时的idf不同?谢谢

# Vectorize the training data
X_train = vectorizer.fit_transform(train_corpus)

# Vectorize the testing data
X_test = vectorizer.transform(test_corpus)

您不能使用测试来创建TF-IDF模型,因为您不允许对测试集进行任何假设


尽管如此,您仍然需要一种将测试集中的单词表示为数字的方法。这就是为什么你必须在训练集(
vectorizer.fit\u transform(训练语料库)
)上训练,但只变换(不训练)测试集(
vectorizer.transform(测试语料库)
)。

因此,如果目的是确定在这两个集合上训练的最佳参数,以便对看不见的数据进行预测,这两套仍应单独使用,如示例中所示?谢谢。另外,如果我有一组包含标记数据和未标记数据的数据呢。目的是使用标记数据对未标记数据进行预测。似乎使用标记和未标记的数据对tfidf进行分类应该没有问题。然后可以将tfidf分解为训练和测试,以学习SVM分类的最佳参数。