在为我的一组功能进行一些多项式变换时,我正在阅读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属于其他功能,我们只是对来自不同类型的功能之间的交互感兴趣。
因此,所需的输出将仅包含不同类型功能之间的原始功能和相互作用。当然,通过设置Interactaction_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提供的变压器谈论的转换,但是您可以构建自己的变压器来点点
- 您可以删除与自定义变压器转换后不感兴趣的互动,请参见此处
- 创建您的自定义多项式功能变压器,如下所述