2
$\begingroup$

I want to create pipeline which will inverse transform the y variable after model prediction

I have 3 pickle files:

  • X variable scalar transform pre fitted object :-X sclr
  • Y variable scalar transform pre fitted object :-Y sclr
  • svr model object:- model

I imported it to python and now I want create pipeline using this file where input data will get scalar transformed by Xsclr parameter----> then model prediction will happen and then output of model will get inverse transformed using Y sclr object parameter

The implementation would look like

from sklearn.pipeline import Pipeline
pipe = Pipeline(steps=[(StandardScaler(), Xsclr),
                       (SVR(), model),
                       (InverseTransformer(), Ysclr)]
)

I actually I wants to convert this pipeline to ONNX format... Afterwords.

$\endgroup$

2 Answers 2

0
$\begingroup$

That is not possible in with standard scikit-learn. Scikit-learn Pipelines are not designed to transform y/target variable, they are designed to only work on X/features.

$\endgroup$
0
$\begingroup$

Functionality for transforming regression targets exists, in the TransformedTargetRegressor class; see the docs. With prefitted model and scaler, you might be able to set the "fitted" attributes regressor_ and transformer_.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.