Scikit-learn 管道和 Compose 中的标签 (y) 类

Labels (y) in Scikit-learn Pipeline and Compose Classes

我目前的理解是,我们不能在使用 Pipeline 时直接 transform/retrieve y-labels 作为 (X,y) 传递。

最后的fit_transform returns 转换仅在X 上通过,y 仅在涉及fit()、[=17 的情况下使用=] 等等。

我的理解正确吗?

是否还有一种方法可以转换和检索 y(包括使用自定义转换器删除实例时)而无需打破完全封闭的模型训练管道?

总的来说,您的理解是正确的。 Pipeline 对象用于顺序应用 X 的多个转换。来自 user guide:

Pipelines only transform the observed data (X).

另请参阅 gloassary 关于术语转换的内容:

transform
In a transformer, transforms the input, usually only X, into some transformed space (conventionally notated as Xt).

在回归任务的情况下,有一个特殊的 TransformedTargetRegressor 处理转换目标 y 并且可以例如在管道的末端使用。

除此之外,没有规范的方法来控制管道中 y 的转换。