python - 传递 sklearn 管道中的所有列

标签 python scikit-learn pipeline

我正在尝试将 PCA 的结果加入到原始特征中,为此我尝试了 PCA 的 FeatureUnion 和一个仅 passthrough 所有列

feature_selector = FeatureUnion(
    [
        ("original", make_column_transformer(('drop', []), reminder='passthrough'),
        ("pca", PCA())
    ])
my_pipeline = make_pipeline(preprocessor, feature_selector, model)

但这似乎有点违反直觉。
有没有更清洁的方法来做到这一点?也许是选择所有列而不是列转换器的特征选择器?

最佳答案

我认为也许最干净的方法是使用 FunctionTransformer .请特别注意,参数 func 的默认值为您提供了一个“身份转换器”:

[...] If func is None, then func will be the identity function.

关于python - 传递 sklearn 管道中的所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69035959/

相关文章:

ssh - 我怎样才能使 ansible 重用 SSH session 而不是为每个任务创建一个新 session ?

python - 使用 Pandas 中的方法链接分配给列的子集

python - 在 PyTorch 中,grad_fn 属性究竟存储了什么以及它是如何使用的?

python - 如何使用 MySQL executemany 更新 Python 中的列表列表?

python - 如何在 Python 中将不可读的 ^A 写入输出文件?

python - 使用 numpy/scikit 函数保持 pandas 结构

memory - VHDL 中的图像处理流水线

machine-learning - 如何公平地比较基线和 GridSearchCV 结果?

scikit-learn - sklearn 的弃用警告

linux - 是否可以结合使用 tail 和 grep?