from sklearn.compose import ColumnTransformer from sklearn.preprocessing import StandardScaler, OneHotEncoder def build_preprocessor(X): num_cols = X.select_dtypes(include=["int64", "float64"]).columns cat_cols = X.select_dtypes(include=["object", "category"]).columns return ColumnTransformer( transformers=[ ("num", StandardScaler(), num_cols), ("cat", OneHotEncoder(handle_unknown="ignore"), cat_cols), ] )