Python tfidf在装配到列车数据后如何转换测试数据?
我正在使用以下代码:Python tfidf在装配到列车数据后如何转换测试数据?,python,scikit-learn,tfidfvectorizer,Python,Scikit Learn,Tfidfvectorizer,我正在使用以下代码: pipeline = Pipeline([('vect', TfidfVectorizer( ngram_range=(1,2), stop_words="english", sublinear_tf=True ,
pipeline = Pipeline([('vect',
TfidfVectorizer( ngram_range=(1,2),
stop_words="english",
sublinear_tf=True ,
use_idf=True,
norm='l2' )),
('reduce_dim',
SelectPercentile(f_classif, 90)),
('clf',
SVC(kernel='linear',C=1.0,
probability=True, max_iter=70000,
class_weight='balanced'))])
model = pipeline.fit(X_train,y_train)
model.predict(X_test)
x=vectorizer.fit_transform(X_train_text)
y=vectorizer.transform(X_test_text)
根据我的理解,pipeline.fit()
将tfidf适配到列车数据,当在X\u测试中调用model.predict()
时,它仅基于适配的列车数据执行tfidf转换
由于tf idf通过获取文档和语料库中单词的频率来工作,我想知道.fit\u transform
和.transform
函数下面会发生什么。1)非常接近您的问题,您可以在这里找到:
2) tfidf变换是在fit transform
内部完成的,这里的predict
与tfidf矢量器不对应,因为它没有这样的功能,它是SVC的方法。是fit()
和fit\u transform()
的基本文档
你对工作的理解是正确的。测试时,为tf idf矢量器设置参数。这些参数被存储起来,稍后用于转换测试数据
- 训练数据-
fit\u transform()
- 测试数据-
transform()
如果您想查看内部加工,您应该查看相同的内部加工