1. 程式人生 > 其它 >ALINK(二十七):特徵工程(六)特徵組合與交叉(特徵組合也叫特徵交叉)

ALINK(二十七):特徵工程(六)特徵組合與交叉(特徵組合也叫特徵交叉)

0 概念

特徵交叉一種合成特徵的方法,可以在多維特徵資料集上,進行很好的非線性特徵擬合。

特徵組合是指通過將兩個或多個輸入特徵相乘來對特徵空間中的非線性規律進行編碼的合成特徵。通過建立一個特徵組合可以解決非線性問題。

假設一個數據集有特徵x1x1和x2x2,那麼引入交叉特徵值x3x3,使得:

x3=x1x2

那麼最終的表示式為:

y=b+w1x1+w2x2+w3x3

1 如何構造新特徵?

(1)將一個特徵與其本身或其他特徵相乘(稱為特徵組合)。
(2)兩個特徵相除。
(3)對連續特徵進行分桶,以分為多個區間分箱。

無法找到一個直線把藍色和黃色的點分離開,此時就等使用特徵交叉的方式,進行擬合。當然,也可以使用神經網路。

2 特徵組合的種類

可以建立很多不同種類的特徵組合。例如:

  • [A X B]:將兩個特徵的值相乘形成的特徵組合。
  • [A x B x C x D x E]:將五個特徵的值相乘形成的特徵組合。
  • [A x A]:對單個特徵的值求平方形成的特徵組合。

通過採用隨機梯度下降法,可以有效地訓練線性模型。
因此,在使用擴充套件的線性模型時輔以特徵組合一直都是訓練大規模資料集的有效方法。

特徵交叉的方式

4 組合獨熱向量

使用One-Hot向量的方式進行特徵交叉。這種方式一般適用於離散的情況,很少用於連續的資料集上。我們可以把特徵交叉看成資料的邏輯與操作。

binned_latitude(lat) = [
  
0 < lat <= 10 10 < lat <= 20 20 < lat <= 30 ] binned_longitude(lon) = [ 0 < lon <= 15 15 < lon <= 30 ]

特徵交叉本質上是一個笛卡爾積,兩個特徵列進行笛卡爾積。笛卡爾積中,如果同時滿足兩者的條件,則結果為1;否則為0,因此這種方式更加適合離散型的資料特徵。一般來說,先把資料進行分檔處理,再把分檔的結果進行特徵交叉,此時可以獲得更好的資料特徵,分檔處理可以對資料降維,從而極大地簡化計算量。

  • 特徵的連續值在不同的區間的重要性是不一樣的
binned_latitude_X_longitude(lat, lon) = [
  0  < lat <= 10 AND 0  < lon <= 15
  0  < lat <= 10 AND 15 < lon <= 30
  10 < lat <= 20 AND 0  < lon <= 15
  10 < lat <= 20 AND 15 < lon <= 30
  20 < lat <= 30 AND 0  < lon <= 15
  20 < lat <= 30 AND 15 < lon <= 30
]
  • 特徵交叉的典型應用:

比如在地圖的方面的處理中,需要用到特徵交叉。下圖的房價和經緯度中,單純的給出經度或者緯度,都不能直接反應房價和地理位置的關係。

更好的方式為經度和緯度交叉點,才能表示位置。

圖片中,先對資料進行分檔處理,也就是精度和緯度分別分割成100的資料段,然後把分段後的資料列進行特徵交叉,那麼每個房屋會對應一個10000維的特徵向量,二維的位置資訊會轉化成一維的位置向量,只有精確的位置點的資料才是1,其餘的都是0 作者:小幸運Q
連結:https://www.jianshu.com/p/2d899ab43e7c
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。