特征組合(特征交叉)


motivation:讓模型學習到更復雜的非線性特征。

method:原始特征 + 組合特征。

notes:

連續特征和離散特征都可以做交叉。

 

 

HOW TO?

離散特征:笛卡爾積

比如屬性A有三個特征,屬性B有兩個特征,笛卡爾積后就有六個組合特征,然后用one hot 或其他embedding方式給新的特征編碼。

問題:這種暴力做交叉很可能導致特征稀疏的問題。

 

連續特征:

除了一般對於連續型特征的加減乘除生成新的特征以外,還可以對多個特征(連續特征離散化)進行組合。

 

構造多項式

很多情況下,多項式特征是通過考慮輸入數據中的非線性特征來增加模型的復雜性,它能捕捉到特征中高階和相互作用的項。 

多項式生成函數:

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

 

示例:

from sklearn.preprocessing import PolynomialFeatures
x =  np.arange(6).reshape(3,2)
print x

[[0 1]
 [2 3]
 [4 5]]

poly = PolynomialFeatures()#默認輸入兩個參數
help(poly)
poly.fit_transform(x)

array([[  1.,   0.,   1.,   0.,   0.,   1.],
       [  1.,   2.,   3.,   4.,   6.,   9.],
       [  1.,   4.,   5.,  16.,  20.,  25.]])

參數degree =2,interaction_only = False:

 input_feature = (x1,x2), output_feature =

 

參數degree = 3,interaction_only = True

input_feature = (x1,x2,x3),output_feature = 

 

特征組合與業務理解

[知乎:漫漫成長]

日常工作場景中的特征往往都是以用戶和其對應的屬性作為出發點,然后和物品對應的屬性特征或者上下文特征進行交叉組合,比如:

  • 用戶與類別特征組合(eg:電商平台中,用戶在不同類別下的點擊次數,可以簡單衡量用戶的類別偏好)
  • 用戶不同年齡檔與類別特征組合(eg:新聞平台中,少年用戶在娛樂新聞下的點擊次數會比較高,青年用戶在社會新聞下的點擊次數會比較高)
  • 用戶身份與時間特征組合(eg:學生周六周日、節假日,在某娛樂APP內的行為會比較豐富,上班族早晚高峰,在某娛樂APP內的行為會比較豐富)
  • 用戶的價格偏好與物品的價格級別特征組合(eg:用戶A偏好的價格級別為中,物品的價格級別為高,那么組合特征就是0,即兩者不匹配)

在實際的場景中,往往會結合數據分析去挖掘潛在的價值特征組合。這時候便會借助數據分析、數據挖掘、分析者的敏感直覺和對業務的深入理解去進行挖掘。例如,不同人群對於APP推送消息的處理風格和處理時間很不一樣,有的人會直接划掉,有的人則會在某個時間段進行消息查看,這時候便可以考慮對用戶Push消息提供個性化時間分發,從而提高用戶的打開率。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM