是否可以在 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
关于python - 在 scikit-learn 流水线中插入或删除一个步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34324192/