我们正在实现sklearn pipeline如下(伪代码):
feature_num = numeric_columns
feature_cat = categorical_columns
num_pipeline = Pipeline([('feature_select', DataFrameSelector(feature_num))
,('feature_num_prep', custom_num_prep)
])
cat_pipeline = Pipeline([('feature_select', DataFrameSelector(feature_cat))
,('feature_cat_prep', custom_cat_prep)
])
feature_pipeline = FeatureUnion(transformer_list=[
('num_pipeline', num_pipeline)
,('cat_pipeline', cat_pipeline)
])
由于我们在custom_num_prep转换器中可以删除异常值 - 当我们到达 feature_pipeline 时出现错误:
ValueError: [blocks[0,:] 的行尺寸不兼容....
原因很明显,因为有已删除的cat_pipeline观察结果。
问题是:
1. 有没有一种 Python 的方式来同步管道中的两个数据帧?
2. 如果不是,这种情况有什么策略?num_pipeline