是否可以从管道中使用的对象之一中访问scikit-learn管道。我想访问named_steps
内部管道的Regressor
属性,如下所示:
from sklearn.pipeline import make_pipeline
class Transform(object):
def fit(self, X, y=None):
print("Transform.fit")
return self
def transform(self, X):
print("Transform.transform")
return X
class Regressor(object):
def fit(self, X, y=None):
print("Regressor.fit")
# Can I get the named_steps attribute from
# the pipeline that Regressor is part of here
def predict(self, X):
print("Regressor.predict")
model = make_pipeline(Transform(), Regressor())
print(model.steps)
print("Begin Fit")
model.fit(1)
print("End Fit")
print("Begin Predict")
model.predict(1)
print("End Predict")
我要这样做的原因是要在回归器之前访问使用哪个变压器。
编辑: 详细地说,我正在编写一些我在管道中一起使用的自定义转换器和回归对象。
我想做的一件事就是让回归对象更改行为,这取决于之前有多少个转换器对象。初始化回归器类时,我可以明确地将其指定为变量,但理想情况下,我不想这样做。
我想做的第二件事是使回归器既可以用作转换器也可以用作回归器(我可能必须重写管道类中的某些功能)。如果使用了回归变量来转换数据,则任何即将在管道中使用的回归变量都需要更改其行为。