我目前的理解是,在使用Pipeline时,我们无法直接转换/检索作为(X,y)传递的y-labels。
最后的fit_transform只返回对X的转换,而y只在涉及fit()、fit_predict()等情况下被使用。
我的理解正确吗?
此外,是否有方法可以在不打破完全封闭的模型训练pipeline的情况下转换和检索y(包括在使用自定义转换器删除实例时)?
回答:
总的来说,您的理解是正确的。Pipeline对象用于顺序应用对X的多次转换。根据用户指南:
Pipeline只转换观测数据(
X)。
另外,请查看关于术语“transform”的术语表:
transform
在转换器中,将输入,通常仅X,转换到某个转换空间(通常记为Xt)。
在回归任务中,有一个特殊的TransformedTargetRegressor,它处理目标y的转换,并且可以例如在pipeline的末尾使用。
除此之外,在pipeline中控制y的转换没有标准方法。