Make training pipeline

将数据集中的features 划分为数值型和object型

因为pandas 只有 object 型 和int float数值型

(1)创建处理管道(processing pipeline)

对数据进行预处理

num_transformer = Pipeline(

    steps=[("imputer", SimpleImputer(strategy="median")), ("scaler", StandardScaler())]

)

cate_transformer = Pipeline(

    steps=[

        ("imputer", SimpleImputer(strategy="constant", fill_value="missing")),

        ("onehot", OneHotEncoder(handle_unknown="error", drop="first")),

    ]

)

SimpleImputer提供了填充缺失值的基本策略。缺失值可以用常量值或使用缺失值所在列的统计信息(平均值、中位数或最频繁)进行填充。上述填充的是中位数(median)

StandardScaler(),标准化,将数据集处理为均值为0,方差为一的数据

OneHotEncoder(独热编码),这种表示方式将每一个分类特征变量的m个可能的取值转变成m个二值特征,对于每一条数据这m个值中仅有一个特征值为1,其他的都为0。


transformations = ColumnTransformer(

    transformers=[

        ("num", numeric_transformer, numerical),

        ("cat", categorical_transformer, categorical),

    ]

)

ColumnTransformer()在Python的机器学习库scikit-learn中,可以选择地进行数据转换。例如,它允许将特定的转换或转换序列仅应用于数字列,而将单独的转换序列仅应用于类别列。


(2)预测管道

clf = Pipeline(

    steps=[("preprocessor", transformations), ("classifier", LGBMClassifier())]

)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容