scikit 的 cross_val_predict 是否为每次折叠重新计算 tfidf?
Does scikit's cross_val_predict calculates tfidf anew for each fold?
我训练过这样的分类器:
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 值是针对每个折叠重新计算的,还是在整个数据集上计算的,并且每个折叠都使用相同的值。
管道的每个 组件在交叉验证 (CV) 期间针对每个折叠重新计算。做相反的事情(i.e.calculate 整个数据集中的 tf-idf 值并在 CV 期间将这些值用于其余管道组件)将完全违反两个 CV 的核心思想和管道。
Is it mentioned in the docs, because I couldn't find it
确实不是;重点是,即使在文档中,有些东西也被认为太初级而无法提及明确。
我训练过这样的分类器:
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 值是针对每个折叠重新计算的,还是在整个数据集上计算的,并且每个折叠都使用相同的值。
管道的每个 组件在交叉验证 (CV) 期间针对每个折叠重新计算。做相反的事情(i.e.calculate 整个数据集中的 tf-idf 值并在 CV 期间将这些值用于其余管道组件)将完全违反两个 CV 的核心思想和管道。
Is it mentioned in the docs, because I couldn't find it
确实不是;重点是,即使在文档中,有些东西也被认为太初级而无法提及明确。