在对我的一组特征进行一些多项式转换时,我正在阅读 sklearn.preprocessing
PolynomialFeatures
转换器,但我意识到该转换包括所有可能的组合,即使使用interaction_only=True
参数。我想知道是否有一种方法可以指定只需要一些交互(组合)。例如,
给定以下数据框:
a b c Z X W
0 1 2 3 0 1 0
1 1 2 3 1 0 1
2 1 2 3 0 0 1
假设 a、b、c 属于一种特征,而 Z W X 属于另一种特征,我们只对不同类型的特征之间的交互感兴趣。
因此,所需的输出将仅包含原始特征以及不同类型特征之间的交互。当然,通过设置interaction_only=True,您只会获得“真正的交互”,并避免使用 a^2、Z^2 等功能...
a b c Z X W a*Z a*X a*W b*Z b*X b*W c*Z c*X c*W
0 0 1 2 3 0 1 0 0 1 0 0 2 0 0 3
3 1 1 2 3 1 0 1 1 0 1 2 0 2 3 0
3 2 1 2 3 0 0 1 0 0 1 0 0 2 0 0
我只想在 a、b、c 和 Z、X、W 列之间执行交互
并避免诸如 a*c
或 Z*X
最佳答案
似乎没有任何方法可以使用 scikit learn 提供的变压器来获得您所说的转换,但您可以构建自己的变压器来点它
关于python - 多项式特征变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56918065/