多项式特征变换
Posted
技术标签:
【中文标题】多项式特征变换【英文标题】:polynomial feature transformation 【发布时间】:2019-11-16 23:22:19 【问题描述】:在为我的一组特征进行多项式变换时,我正在阅读 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
等组合
【问题讨论】:
【参考方案1】:似乎没有任何方法可以使用 scikit learn 提供的转换器获得您所说的转换,但您可以构建自己的转换器来点它
您可以在使用自定义转换器see here 进行转换后删除您不感兴趣的交互 按照here 的说明创建您的自定义多项式特征转换器【讨论】:
以上是关于多项式特征变换的主要内容,如果未能解决你的问题,请参考以下文章