【发布时间】:2020-06-23 16:30:42
【问题描述】:
我已经构建了一个包含几个步骤的管道,这需要一些时间来适应。对于调试,我希望能够检查该管道的子集(例如 {pipe step 1-3}.transform(X))。
我知道我可以使用 Pipe(pipe.named_steps[:3]) 来提取一个子集并从中构造一个新的管道。不幸的是,我必须在对其调用转换之前重新安装管道。
有没有办法避免改装?
【问题讨论】:
标签: scikit-learn
我已经构建了一个包含几个步骤的管道,这需要一些时间来适应。对于调试,我希望能够检查该管道的子集(例如 {pipe step 1-3}.transform(X))。
我知道我可以使用 Pipe(pipe.named_steps[:3]) 来提取一个子集并从中构造一个新的管道。不幸的是,我必须在对其调用转换之前重新安装管道。
有没有办法避免改装?
【问题讨论】:
标签: scikit-learn
您可以通过像普通列表一样对其进行索引来访问Pipeline 对象的子部分,例如pipe[:3]。这将返回一个新的但不适合的 Pipeline 实例。不过有趣的是,它的组件是安装好的。
因此,使用 scikit-learn 的 check_is_fitted 函数进行检查会引发错误。但是,您仍然可以致电pipe[:3].transform(X),如果您之前已经安装了整个管道,它仍然可以工作。
【讨论】: