【发布时间】:2023-03-18 08:01:01
【问题描述】:
我正在寻求使用 sklearn 的 ColumnTransformer 函数构建数据预处理管道的帮助。
目前我的管道看起来像这样:
from scipy.stats.mstats import winsorize
from sklearn.compose import ColumnTransformer
from sklearn.impute import SimpleImputer
ColumnTransformer(remainder='passthrough',
transformers=[
('Winsorize', FunctionTransformer(winsorize,
kw_args={'axis': 0, 'inplace': False, 'limits': [0, 0.01]}), ['feat_1','feat_2']),
('num_impute', SimpleImputer(strategy='median'), ['feat_3', 'feat_4']),
])
请注意,每个转换器都提供了一组独特的功能。
我遇到的问题是如何对相同的特征应用堆叠分析。例如,
ColumnTransformer(remainder='passthrough',
transformers=[
('Winsorize', FunctionTransformer(winsorize,
kw_args={'axis': 0, 'inplace': False, 'limits': [0, 0.01]}), ['feat_1','feat_2']),
('num_impute', SimpleImputer(strategy='median'), ['feat_1', 'feat_2', 'feat_3']),
])
请注意,两个转换器都提供了 feat_1 和 feat_2。
这样的管道将为 feat_1 和 feat_2 创建重复的列(基于 Winsorize 的两列,基于 num_impute 的两列)
【问题讨论】:
标签: python scikit-learn pipeline