python - 理解 FeatureUnion (pandas) 工作的困惑

标签 python pandas scikit-learn pipeline

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

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

最佳答案

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

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

我认为您在阅读当前版本文档后感到困惑。以前 FeatureUnion 用于执行 ColumnTransformer 在 0.20 版中执行的操作。在这里比较最新的例子:

这里有以前版本的文档:

您会注意到相似之处。

您可以尝试在 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 个新特征给您。

关于python - 理解 FeatureUnion (pandas) 工作的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52653993/

相关文章:

python - 将类似功能应用于多级 Pandas 数据框

python - 根据多个条件过滤数据框

python - 序数逻辑回归 : Intercept_ returns [1] instead of [n]

python-3.x - 如何解决此 ValueError : only 2 non-keyword arguments accepted sklearn python

python - Django 动态 url

Python:从另一个类调用方法的最佳方式?

python错误无法处理多类和连续多输出的混合

python - 当在另一个函数(self)中声明函数(self)时,“self”丢失了一些东西

python - 动态拆分 DataFrame 的列并将其存储为新列

machine-learning - 训练数据准备