首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将预处理器/估计器的选择与使用sklearn管道的超参数调优结合起来?

如何将预处理器/估计器的选择与使用sklearn管道的超参数调优结合起来?
EN

Data Science用户
提问于 2021-12-30 14:47:33
回答 1查看 222关注 0票数 1

我知道如何在简单的和稍微复杂的用例中使用sklearn.pipeline.Pipeline()。我知道如何为同构和异构数据设置管道,在后一种情况下,使用sklearn.compose.ColumnTransformer()

然而,在实际的ML中,不仅需要对一组大的模型超参数进行实验,而且还要对一组潜在的预处理类和不同的估计器/模型进行实验。

我的问题是双重的:

  1. 在选择文本向量器作为网格或随机搜索的附加超参数的情况下,设置管道的首选方法是什么?
  2. 此外,建立管道的首选方法是什么,其中选择多个模型也可以作为附加的超参数处理?在这种情况下,如何优化特定于模型的超参数?

在第一种情况下,常见的用例是文本矢量化:将CountVectorizer()TfidfVectorizer()的选择作为要优化的超参数。

在第二种情况下,一个实际的用例可以在各种算法之间进行选择,或者在多类分类中进行选择,无论是使用OneVsOneClassifier()还是OneVsRestClassifier()

我知道这可能正是开发AutoML解决方案的目的。我听说过开箱即用的AutoML解决方案,它可以用超参数调优自动选择模型,但我对其中任何一个都没有经验,因此我不知道它们是否确实为我在这篇文章中描述的一般主题提供了一个答案。

EN

回答 1

Data Science用户

回答已采纳

发布于 2021-12-30 20:45:58

一些纯粹的科学方法:

  • 当预处理涉及到数据平衡和采样策略时,请考虑使用不平衡-学习组件(即: RandomUnderSample)将其嵌入到管道中。这使您可以对参数进行超调。
  • 在决定是否需要某些预处理步骤时,依赖于网格搜索的传递功能。但是,当步骤是另一个步骤(即: StandardScaler + MLPerceptronClassifier)所需的先决条件时,这不能表示。
  • 考虑使用scikit-opt的S BayesSearchCV策略,根据以前的运行来遍历参数空间,而不是像GridSearchCV或RandomizedSearchCV那样固定或随机地进行参数空间。对于许多参数调整,这可能会更快地收敛。

在实践中,我发现拥有一个完整的端到端管道,尝试学习所有东西,在计算上是非常昂贵的。(例如:参数、度量、模型类型、规范化阶段、特性、体系结构等),所以更多地调整最重要的是什么。

票数 2
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/106568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档