特徵工程——特徵交叉、交叉特徵、特徵組合
關於特徵交叉的作用以及原理,我這裏不進行詳細描述,因爲大佬們已經說得很清楚了,這裏就附上幾個連接:
下面說怎樣製作和交叉特徵:
多項式生成函數:
sklearn.preprocessing.PolynomialFeatures(degree=2, interaction_only=False, include_bias=True)
參數說明:
- degree:默認爲2,多項式次數(就同幾元幾次方程中的次數一樣)
- interaction_only:是否包含單個自變量**n(n>1)特徵數據標識,默認爲False,爲True則表示去除與自己相乘的情況(例:)
- include_bias:是否包含偏差標識,默認爲True,爲False則表示不包含偏差項
舉例說明:
import numpy as np
from sklearn.preprocessing import PolynomialFeatures
X = np.arange(6).reshape(3, 2)
X
array([[0, 1],
[2, 3],
[4, 5]])
poly = PolynomialFeatures(degree = 2)
poly.fit_transform(X)
array([[ 1., 0., 1., 0., 0., 1.],
[ 1., 2., 3., 4., 6., 9.],
[ 1., 4., 5., 16., 20., 25.]])
# 設置參數interaction_only = True,不包含單個自變量****n(n>1)特徵數據
poly = PolynomialFeatures(degree = 2, interaction_only = True)
poly.fit_transform(X)
array([[ 1., 0., 1., 0.],
[ 1., 2., 3., 6.],
[ 1., 4., 5., 20.]])
# 再添加 設置參數include_bias= False,不包含偏差項數據
poly = PolynomialFeatures(degree = 2, interaction_only = True, include_bias=False)
poly.fit_transform(X)
array([[ 0., 1., 0.],
[ 2., 3., 6.],
[ 4., 5., 20.]])