Pandas DataFrame 中的 Neuraxle Select 列
Neuraxle Select Columns in Pandas DataFrame
从数据集中 select 列子集的 NeurAxle 方法是什么?这就是我通过 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())
])
编辑:-
我认为这是一个解决方案,但我不是 100% 相信。
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]
更新:已修复。请在此处查看列转换器的用法示例:
https://www.neuraxle.org/stable/examples/sklearn/plot_cyclical_feature_engineering.html#sphx-glr-examples-sklearn-plot-cyclical-feature-engineering-py
这个问题已经存在:https://github.com/Neuraxio/Neuraxle/issues/168
我暂时不想使用 Pandas,而是使用提供的 ColumnTransformer:https://www.neuraxle.org/stable/api/neuraxle.steps.column_transformer.html
如果您对 Pandas Transformer 进行了完整编码(并进行了适当的单元测试),我们很高兴通过在 Neuraxle 上打开拉取请求并将您添加为贡献者来获得您的贡献。
在那之前,您可以编写一个简单的 PandasToNumpy
步骤,该步骤将 return .values
调用 transform
,然后使用现有的 ColumnTransformer
Neuraxle 通过提供所需列的整数而不是字符串。
另请注意,您可以从 NonFittableMixin
继承以将 fit
覆盖为 return 自身,而无需额外代码。
从数据集中 select 列子集的 NeurAxle 方法是什么?这就是我通过 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())
])
编辑:-
我认为这是一个解决方案,但我不是 100% 相信。
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]
更新:已修复。请在此处查看列转换器的用法示例: https://www.neuraxle.org/stable/examples/sklearn/plot_cyclical_feature_engineering.html#sphx-glr-examples-sklearn-plot-cyclical-feature-engineering-py
这个问题已经存在:https://github.com/Neuraxio/Neuraxle/issues/168
我暂时不想使用 Pandas,而是使用提供的 ColumnTransformer:https://www.neuraxle.org/stable/api/neuraxle.steps.column_transformer.html
如果您对 Pandas Transformer 进行了完整编码(并进行了适当的单元测试),我们很高兴通过在 Neuraxle 上打开拉取请求并将您添加为贡献者来获得您的贡献。
在那之前,您可以编写一个简单的 PandasToNumpy
步骤,该步骤将 return .values
调用 transform
,然后使用现有的 ColumnTransformer
Neuraxle 通过提供所需列的整数而不是字符串。
另请注意,您可以从 NonFittableMixin
继承以将 fit
覆盖为 return 自身,而无需额外代码。