【问题标题】:Confusion in understanding the working of FeatureUnions (pandas)对 FeatureUnions (pandas) 工作理解的困惑
【发布时间】:2023-03-27 09:08:01
【问题描述】:

我正在学习 pandas 中的管道和功能联合。我了解管道的工作原理,它有助于将一系列转换应用于给定的数据集。但是,我对功能联合感到困惑。我读过docs,它说变压器是并行应用的,然后将结果连接起来。

我对此有疑问,如果我们将所有转换器应用于整个数据集,还是仅将不同转换器应用于选定的特征?如果到整个数据集,我们如何连接结果?另外,是否有任何我应该使用 FeatureUnion 的一般用例?

【问题讨论】:

    标签: python pandas scikit-learn pipeline


    【解决方案1】:

    FeatureUnion 用于对特征应用不同类型的转换。可能是对于同一组功能,您希望应用多种类型的转换,并希望将所有这些转换的组合用作您的新功能。

    the documentation here 中的解释应该会给你一些想法。

    我认为您在阅读当前版本文档后感到困惑。以前 FeatureUnion 曾经在 0.20 版中做 ColumnTransformer 正在做的事情。在此处比较最新示例:

    这里有以前版本的文档:

    您会注意到相似之处。

    您可以尝试在 Stackoverflow 上搜索以查找 FeatureUnion 的不同用例。如果仍然不满意,请随时提出更具体的问题。了解您想对数据集做什么可能会有所帮助。

    评论更新

    功能的数量可能会增加或减少。 FeatureUnion 将不会保留您的原始特征,如果您不在转换中保留它们。

    举个例子:

    estimators = [('linear_pca', PCA(n_components=5)), 
                  ('kernel_pca', KernelPCA(n_components=10))]
    combined = FeatureUnion(estimators)
    

    假设您的原始数据有 100 个特征。上面的 FeatureUnion 只会返回 15 个新特性。

    • PCA 将获取所有 100 个特征并将它们转换为仅保留 5 个组件,这些组件将返回到 FeatureUnion。

    • 同样,KernelPCA 也会获取所有 100 个特征并在转换后的数据中保留 10 个组件。

    • 然后,FeatureUnion 将连接这 5 个和 10 个特征,以向您返回 15 个新特征。

    【讨论】:

    • 正如你所提到的,for the same set of features you want to apply multiple type of transformations, and want to use the combination of all those transformation as your new features,这将为我提供与我的原始数据相同大小的多个数据帧。如何将这些组合起来再次拥有相同大小的数据框?我们是采取交叉点还是通过模型训练来选择最相关的特征?
    • @bkshi FeatureUnion 会将它们组合起来并为您提供一个数组。行数相同,但列数取决于转换。
    • 这是否意味着,我的数据中的特征数量会根据我对其应用的不同转换而增加?
    • @bkshi 我已经在 cmets 中添加了解释。
    • 你好@VivekKumar,感谢上面的精彩解释,只是一个问题,例如,在 FeatureUnion 或管道中进行数据输入或数据缩放有什么区别?这对我来说不是很清楚
    猜你喜欢
    • 1970-01-01
    • 2021-06-24
    • 2011-08-25
    • 2018-09-17
    • 2015-01-13
    • 2013-05-15
    • 1970-01-01
    • 2023-04-08
    • 2011-10-13
    相关资源
    最近更新 更多