在sklearn管道中是否可以切换某个步骤?

我想知道我们是否可以在sklearn.pipeline中设置一个“可选”的步骤。例如,对于一个分类问题,我可能想尝试在ExtraTreesClassifier之前是否进行PCA变换。在实践中,这可能是一个带有额外参数的管道,用于指定PCA步骤的开关,以便我可以通过GridSearch等进行优化。我在sklearn的源码中没有看到这样的实现,但有没有什么变通的方法呢?

此外,由于管道中后续步骤的可能参数值可能依赖于前一步的参数(例如,ExtraTreesClassifier.max_features的有效值依赖于PCA.n_components),是否可以在sklearn.pipelinesklearn.grid_search中指定这种条件依赖关系呢?

谢谢!


回答:

  • 目前在网格搜索中,Pipeline步骤不能被设为可选,但你可以将PCA类包装成你自己的OptionalPCA组件,并添加一个布尔参数来在需要时关闭PCA,作为一个快速的变通方法。你可能想看看hyperopt来设置更复杂的搜索空间。我认为它有很好的sklearn集成,默认支持这种模式,但我找不到相关文档了。或许你可以看看这个演讲

  • 对于依赖参数的问题,GridSearchCV支持参数树来处理这种情况,如文档中所示

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注