我使用的Sklearn管道包含多个转换器,但其中一个初始转换器返回数值类型,而后续的转换器需要对象类型的变量。
基本上,我需要在管道中为所需的列插入以下代码:
data[col] = data[col].astype(object)
在管道中是否有任何方法可以做到这一点?
注意:我正在使用Feature-engine转换器。
回答:
是的,你可以使用sklearn.preprocessing.FunctionTransformer
。一个简单的例子如下,
def to_object(x): return pd.DataFrame(x).astype(object)fun_tr = FunctionTransformer(to_object)y = fun_tr.fit_transform(pd.DataFrame({'a':[1,2,3]}))