当前位置:  开发笔记 > 编程语言 > 正文

在scikit-learn Pipeline中插入或删除一个步骤

如何解决《在scikit-learnPipeline中插入或删除一个步骤》经验,为你挑选了2个好方法。

是否可以删除或插入sklearn.pipeline.Pipeline对象中的步骤?

我试图在Pipeline对象中有或没有一步进行网格搜索.并想知道我是否可以在管道中插入或删除一个步骤.我在Pipeline源代码中看到,有一个self.steps对象包含所有步骤.我们可以逐步完成named_steps().在修改它之前,我想确保,我不会造成意想不到的影响.

这是一个示例代码:

from sklearn.pipeline import Pipeline
from sklearn.svm import SVC
from sklearn.decomposition import PCA
estimators = [('reduce_dim', PCA()), ('svm', SVC())]
clf = Pipeline(estimators)
clf 

是否有可能steps = clf.named_steps()在此列表中执行类似的操作,然后插入或删除?这是否会对clf对象造成不良影响?



1> HonzaB..:

我看到每个人都只提到了删除步骤.如果您还想在管道中插入一个步骤:

pipe.steps.append(['step name',transformer()])

pipe.steps 与列表的工作方式相同,因此您还可以将项目插入特定位置:

pipe.steps.insert(1,['estimator',transformer()]) #insert as second step



2> labelmaker..:

基于初步测试,您可以安全地从scikit-learn管道中删除一个步骤,就像您对任何列表项一样,只需简单

clf_pipeline.steps.pop(n)

其中n是您要删除的单个估算器的位置.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有