python - 在 scikit-learn 流水线中插入或删除一个步骤

标签 python machine-learning scikit-learn artificial-intelligence

是否可以在 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/

相关文章:

python - 洗牌参数

python - 使用 pytorch 获取可用 GPU 内存总量

python - 其字谜是回文的子串的数量

python - 为什么我在简单的 Keras 功能 API 中收到输入错误?

python - 使用 sklearn 提取 PCA 成分

python - QTabWidget 的 PyQt 鼠标事件

machine-learning - Caffe 嵌入层输入

python - 值错误: array must not contain infs or NaNs during Biclustering

python - 根据数据来源的列附加列表

python-3.x - 网格搜索后如何在 pivot_table 上绘制热图