gpt4 book ai didi

scikit-learn - 如何在管道中使用具有关联提取器的多个输入特征?

转载 作者:行者123 更新时间:2023-12-01 02:13:51 24 4
gpt4 key购买 nike

我正在使用 Scikit-learn 处理分类任务。我有一个数据集,其中每个观察都包含两个单独的文本字段。我想设置一个管道,其中每个文本字段都通过其自己的 TfidfVectorizer 并行传递,并且 TfidfVectorizer 对象的输出被传递给分类器。我的目标是能够使用 GridSearchCV 优化两个 TfidfVectorizer 对象的参数以及分类器的参数。

管道可能被描述如下:

Text 1 -> TfidfVectorizer 1 --------|
+---> Classifier
Text 2 -> TfidfVectorizer 2 --------|

我了解如何在不使用管道的情况下执行此操作(只需创建 TfidfVectorizer 对象并从那里开始工作),但是如何在管道中进行设置?

谢谢你的帮助,

抢。

最佳答案

使用 PipelineFeatureUnion类。您案例的代码如下所示:

pipeline = Pipeline([
('features', FeatureUnion([
('c1', Pipeline([
('text1', ExtractText1()),
('tf_idf1', TfidfVectorizer())
])),
('c2', Pipeline([
('text2', ExtractText2()),
('tf_idf2', TfidfVectorizer())
]))
])),
('classifier', MultinomialNB())
])

您可以通过使用 <estimator1>__<estimator2>__<parameter> 引用参数来对整个结构进行网格搜索。句法。例如 features__c1__tf_idf1__min_df指的是 min_df TfidfVectorizer 1 的参数从你的图表。

关于scikit-learn - 如何在管道中使用具有关联提取器的多个输入特征?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26900060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com