""" Description: Contains feature processing pipelines used for preprocessing raw data into a format that can be used. """ import pandas as pd import numpy as np # utils etc import re import json # tensorflow imports import tensorflow as tf # scikitlearn from sklearn.preprocessing import ( # Scalers StandardScaler, # Encoders OneHotEncoder ) from sklearn.compose import ColumnTransformer from sklearn.pipeline import Pipeline from sklearn.feature_selection import ( SelectPercentile ) """ Feature Processing Pipeline Factory v1 """ def feature_preprocessing_basic_features(categorical_cols, numerical_float_cols, bool_cols): """ Feature processing basic features (v1) params: - categorical_cols (list[str]) - list of categorical features - numerical_float_cols (list[str]) - list of float cols,. - bool_cols (list[str]) - list of boolean feature returns: - pipeline (sklearn.Pipeline) """ # categorical feature categorical_features_pipeline = [ ("categorical_features", OneHotEncoder(handle_unknown='infrequent_if_exist'), categorical_cols) ] # numerical features numerical_floats_features_pipeline = [ ("float_features", StandardScaler(), numerical_float_cols) ] # bool features bool_features_pipeline = [ ("boolean_features", OneHotEncoder(), bool_cols), ] final_pipeline = categorical_features_pipeline + \ numerical_floats_features_pipeline +\ bool_features_pipeline # column transformers column_transform_fns = ColumnTransformer(transformers=final_pipeline, remainder='drop') return Pipeline(steps=[("feature_processor", column_transform_fns)])