Sklearn Pipeline 添加新功能

Sklearn Pipeline to add new features

假设我有一个包含大量数字特征的数据集。我不确定在模型中使用数值特征的最佳方式是什么,所以我决定对它们应用不同的转换并将这些结果添加到数据集中。这些转换可以是 MinMax Scaling、StandardScaling、LogTransform,...任何您能想到的。

所以基本上,在原始数据中我可能只有特征 "Value_in_Dollars" 并且在所有转换之后我还希望在数据集中具有转换后的特征:

"Value_in_Dollars_MinMax", "Value_in_Dollars_SS", "Value_in_Dollars_Log"

除了原来的专栏。

我知道如何手动执行此操作,但我如何在 Sklearn 管道中执行此操作?这还有可能吗?

使用 FeatureUnion,可能 ColumnTransformer,例如

union = FeatureUnion([("MinMax", MinMaxScaler()),
                      ("SS", StandardScaler()),
                      ("Log", FunctionTransformer(np.log1p)])
proc = ColumnTransformer([('trylots', union, ['Value_In_Dollars'])],
                         remainder='passthrough')