【发布时间】:2019-01-18 11:46:48
【问题描述】:
我已经训练了一个这样的分类器:
text_clf = Pipeline([('vect', CountVectorizer()),('tfidf', TfidfTransformer()),('clf', clf),])
y_predicted=cross_validation.cross_val_predict(text_clf, X, y, cv=3, n_jobs=3, verbose=2)
由于我使用的是带有 tfidf-statistics 的管道对象,因此我想知道 tfidf 值是针对每个折叠重新计算,还是在整个数据集上计算并且每个折叠使用相同的值。
【问题讨论】:
-
管道的每个组件都会为每个折叠重新计算。
-
你怎么知道的?文档中是否提到过,因为我找不到它:(
-
我明白你的意思,但即使在文档中,有些东西也被认为过于简单,无法明确提及;做相反的事情(即计算整个数据集中的 tf-idf 值并将其用于 CV)将完全违反 CV 和管道的 核心思想 ...我相信可以确认此案正如我通过挖掘源代码所说的那样,但我非常怀疑它是否值得大惊小怪......
-
这就是我问这个问题的原因 :) 我只是想确保 scikit 以正确的方式做到这一点。谢谢!请把它作为答案发布
标签: python machine-learning scikit-learn cross-validation tf-idf