多项式特征变换
polynomial feature transformation
在为我的特征集做一些多项式变换时,我正在阅读 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,您只需获得 "real interactions" 并避免使用 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
等组合
在为我的特征集做一些多项式变换时,我正在阅读 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,您只需获得 "real interactions" 并避免使用 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