Scikit-learn 管道 - 变压器的执行顺序
Scikit-learn Pipeline - Execution order of transformers
我正在开发一个文本分类器,我想对其执行以下操作
- 使用客户转换器 TextCounts
在文本上创建新特征(如字数、哈希标签数等)
- 使用自定义转换器 CleanText 清理文本并在其上应用 CountVectorizer
- 结合第 1 步和第 2 步的特征作为我的分类器的输入
我设法为此创建了一个管道,但我不确定它是否像上面解释的那样运行。
features = FeatureUnion(n_jobs=-1,
[('textcounts', TextCounts())
, Pipeline([
('cleantext', CleanText())
, ('vect', vect)
])
])
pipeline = Pipeline([
('features', features)
, ('clf', clf)
])
事实上,我不确定CountVectorizer 是应用在清理后的文本还是原始文本上。有办法解决这个问题吗?谢谢!
FeatureUnion 中的步骤将并行应用(因为您允许的作业数量与 n_jobs=-1 的内核数量相同,甚至实际上是并行的)。所以是的,CountVectorizer 将应用于清理后的文本。
我认为 this 博客 post 中的图形非常清楚。
关于 "Is there a ways to find out?",请参阅 my answer here 了解更多问题。
我正在开发一个文本分类器,我想对其执行以下操作
- 使用客户转换器 TextCounts 在文本上创建新特征(如字数、哈希标签数等)
- 使用自定义转换器 CleanText 清理文本并在其上应用 CountVectorizer
- 结合第 1 步和第 2 步的特征作为我的分类器的输入
我设法为此创建了一个管道,但我不确定它是否像上面解释的那样运行。
features = FeatureUnion(n_jobs=-1,
[('textcounts', TextCounts())
, Pipeline([
('cleantext', CleanText())
, ('vect', vect)
])
])
pipeline = Pipeline([
('features', features)
, ('clf', clf)
])
事实上,我不确定CountVectorizer 是应用在清理后的文本还是原始文本上。有办法解决这个问题吗?谢谢!
FeatureUnion 中的步骤将并行应用(因为您允许的作业数量与 n_jobs=-1 的内核数量相同,甚至实际上是并行的)。所以是的,CountVectorizer 将应用于清理后的文本。
我认为 this 博客 post 中的图形非常清楚。
关于 "Is there a ways to find out?",请参阅 my answer here 了解更多问题。