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')
假设我有一个包含大量数字特征的数据集。我不确定在模型中使用数值特征的最佳方式是什么,所以我决定对它们应用不同的转换并将这些结果添加到数据集中。这些转换可以是 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')