Does including a scaler in sklearn's Pipeline scale the target variable?

Viewed 414

When using a scaling function in sklearn's Pipeline utility, is the scalar applied to the target variable during training and prediction?

In other words, is my code below, which makes use of TransformedTargetRegressor redundant to the pipeline?

cowboy = Lasso(max_iter=10000, tol=.005)
climber = Ridge()
gymshorts = ElasticNet()
scaler = pre.RobustScaler()

models = [('xgb', xgb.XGBRegressor(**best_params)),
          ('ridge', make_pipeline(scaler, TransformedTargetRegressor(climber, scaler))),
          ('lasso', make_pipeline(scaler, TransformedTargetRegressor(cowboy, scaler))),
          ('enet', make_pipeline(scaler, TransformedTargetRegressor(gymshorts, scaler)))]

stack = ensemble.StackingRegressor(estimators=models)
stack = stack.fit(x_train, y_train)
1 Answers

In sklearn's Pipeline, the scaler isn't applied to the target. Only independent varibales (aka features) get scaled.

Thus, the use of TransformedTargetRegressor in your code is not redundant.

Related