比如我想对两个特征x1和x2做交互项,在python里有什么方法吗?
在R里的话,可以直接用
y ~ x1 + x2 + x1:x2python里如果是sklearn模型的话,怎么能够得到两个特征的交互项呢?
2个回答
sklearn里的PolynomialFeatures可以基本实现这个功能
from sklearn.preprocessing import PolynomialFeatures
# 新建一个dataframe
X = pd.DataFrame()
X['x1'] = [1, 1, 1, 2, 0, 0]
X['x2'] = [3, 2, 1, 3, 2, 1]下面构造交互项
interaction = PolynomialFeatures(2, interaction_only=True, include_bias=False)
X_transformed = interaction.fit_transform(X)得到的X_transformed就有三列,第三列是x1和x2的乘积
array([[ 1.,  3.,  3.],
       [ 1.,  2.,  2.],
       [ 1.,  1.,  1.],
       [ 2.,  3.,  6.],
       [ 0.,  2.,  0.],
       [ 0.,  1.,  0.]])
    
  相关讨论
  随便看看