特徵工程——特徵交叉、交叉特徵、特徵組合

特徵工程——特徵交叉、交叉特徵、特徵組合

關於特徵交叉的作用以及原理,我這裏不進行詳細描述,因爲大佬們已經說得很清楚了,這裏就附上幾個連接:

特徵組合&特徵交叉 (Feature Crosses)

結合sklearn進行特徵工程

對於特徵離散化,特徵交叉,連續特徵離散化非常經典的解釋

下面說怎樣製作和交叉特徵:

多項式生成函數:

sklearn.preprocessing.PolynomialFeatures(degree=2, interaction_only=False, include_bias=True)

參數說明:

  • degree:默認爲2,多項式次數(就同幾元幾次方程中的次數一樣)
  • interaction_only:是否包含單個自變量**n(n>1)特徵數據標識,默認爲False,爲True則表示去除與自己相乘的情況(例:a2,b2a^{2},b^{2}
  • 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.]])
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章