import numpy as np
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import OrdinalEncoder
num_pipeline = Pipeline(steps=[
('imputer', SimpleImputer(strategy='constant', fill_value=-np.inf))
])
cat_pipeline = Pipeline(steps=[
('imputer', SimpleImputer(strategy='constant', fill_value='missing')),
('encoder', OrdinalEncoder())
])
preprocessor = ColumnTransformer(
transformers=[
('num', num_pipeline, numerical_cols),
('cat', cat_pipeline, categorical_cols)
]
)