關於特徵交叉的作用以及原理,我這裡不進行詳細描述,因為大佬們已經說得很清楚了,這裡就附上幾個連線:
特徵組合&特徵交叉 (feature crosses)
結合sklearn進行特徵工程
對於特徵離散化,特徵交叉,連續特徵離散化非常經典的解釋
下面說怎樣製作和交叉特徵:
多項式生成函式:
sklearn.preprocessing.polynomialfeatures(degree=
2, interaction_only=
false
, include_bias=
true
)
引數說明:
舉例說明:
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.]]
)
機器學習之特徵組合 特徵交叉
特徵交叉是資料特徵的一種處理方式,通過特徵組合的方式增加特徵的維度,以求得更好的訓練效果。在實際場景中,我們常常遇到這要的情況,線性分類起無法在如下樣本中 無法畫一條直線將下列黃點和藍點分開 所以特徵組合是一種讓線性模型學習到非線性特徵的方式 例如在廣告模型中用到了大量的特徵組合,因為lr是廣告推廣...
特徵工程之特徵選擇
在前一篇文章中我介紹了一些資料預處理的方法,原始資料在經過預處理之後可以被演算法處理了,但是實際中可能有一些特徵是沒有必要的,比如在中國採集的一些資料,那麼國籍就都是中國,其實也就沒有意義了,反映在統計量上就是方差過小,也就是樣本在這個特徵上變化很小。還有一種情況是特徵和最後的結果相關性很小,也就是...
特徵工程之特徵選擇
特徵選擇其實就是減少屬性個數,為什麼要這麼做呢?直接使用原始資料來訓練模型的話,雖然說在訓練模型上的準確率會非常高,但是在測試樣本上的準確率將會大打折扣,也就是會產生過擬合的現象。所以說需要選擇出最適合的屬性進行訓練。特徵選擇的原因 2 雜訊 部分特徵對 結果又影響 進行特徵選擇的時候有兩種情況 一...