是否可以删除或插入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对象造成不良影响?
我看到每个人都只提到了删除步骤.如果您还想在管道中插入一个步骤:
pipe.steps.append(['step name',transformer()])
pipe.steps
与列表的工作方式相同,因此您还可以将项目插入特定位置:
pipe.steps.insert(1,['estimator',transformer()]) #insert as second step
基于初步测试,您可以安全地从scikit-learn管道中删除一个步骤,就像您对任何列表项一样,只需简单
clf_pipeline.steps.pop(n)
其中n是您要删除的单个估算器的位置.