我通常的做法是使用
FeatureUnion,使用a
FunctionTransformer拉出相关的列。
重要笔记:
您必须使用来定义函数,
def
因为令人讨厌的是您无法使用,lambda
或者partial
如果要腌制模型,请在FunctionTransformer中定义您需要初始化
FunctionTransformer
与validate=False
像这样:
from sklearn.pipeline import make_union, make_pipelinefrom sklearn.preprocessing import FunctionTransformerdef get_text_cols(df): return df[['name', 'fruit']]def get_num_cols(df): return df[['height','age']]vec = make_union(*[ make_pipeline(FunctionTransformer(get_text_cols, validate=False), LabelEnprer()))), make_pipeline(FunctionTransformer(get_num_cols, validate=False), MinMaxScaler())))])



