Whats the NeurAxle way to select a subset of columns from a dataset? This is how i am doing it via sklearn:
class ColumnSelectTransformer(BaseEstimator, TransformerMixin):
def __init__(self, columns):
self.columns = columns
def fit(self, X, y=None):
return self
def transform(self, X):
if not isinstance(X, pd.DataFrame):
X = pd.DataFrame(X)
return X[self.columns]
# Set up SIMPLE FEATURES
simple_cols = ['BEDCERT', 'RESTOT', 'INHOSP', 'CCRC_FACIL',
'SFF', 'CHOW_LAST_12MOS', 'SPRINKLER_STATUS',
'EXP_TOTAL', 'ADJ_TOTAL']
simple_features = Pipeline([
('cst', ColumnSelectTransformer(simple_cols)),
('impute', SimpleImputer())
])
EDIT:-
I think this is one solution but im not 100% convinced.
class ColumnSelectTransformer(BaseTransformer, ForceHandleMixin):
def __init__(self, required_columns):
BaseTransformer.__init__(self)
ForceHandleMixin.__init__(self)
self.required_columns = required_columns
def inverse_transform(self, processed_outputs):
pass
def fit(self, X, y=None):
return self
def transform(self, X):
if not isinstance(X, pd.DataFrame):
X = pd.DataFrame(X)
return X[self.required_columns]