1. 程式人生 > >特征組合--組合獨熱矢量

特征組合--組合獨熱矢量

類型 span 大量數據 IT -- english devel git 行為

到目前為止,我們已經重點介紹了如何對兩個單獨的浮點特征進行特征組合。在實踐中,機器學習模型很少會組合連續特征。不過,機器學習模型卻經常組合獨熱特征矢量,將獨熱特征矢量的特征組合視為邏輯連接。例如,假設我們具有以下兩個特征:國家/地區和語言。對每個特征進行獨熱編碼會生成具有二元特征的矢量,這些二元特征可解讀為 country=USA, country=France 或 language=English, language=Spanish。然後,如果您對這些獨熱編碼進行特征組合,則會得到可解讀為邏輯連接的二元特征,如下所示:

  country:usa AND language:spanish

再舉一個例子,假設您對緯度和經度進行分箱,獲得單獨的獨熱 5 元素特征矢量。例如,指定的緯度和經度可以表示如下:

binned_latitude = [0, 0, 0, 1, 0]
binned_longitude = [0, 1, 0, 0, 0]

假設您對這兩個特征矢量創建了特征組合:


binned_latitude X binned_longitude

此特征組合是一個 25 元素獨熱矢量(24 個 0 和 1 個 1)。該組合中的單個 1 表示緯度與經度的特定連接。然後,您的模型就可以了解到有關這種連接的特定關聯性。

假設我們更粗略地對緯度和經度進行分箱,如下所示:

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

針對這些粗略分箱創建特征組合會生成具有以下含義的合成特征:

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]

現在,假設我們的模型需要根據以下兩個特征來預測狗主人對狗狗的滿意程度:

  • 行為類型(吠叫、叫、偎依等)
  • 時段

如果我們根據這兩個特征構建以下特征組合:

  [behavior type X time of day]

我們最終獲得的預測能力將遠遠超過任一特征單獨的預測能力。例如,如果狗狗在下午 5 點主人下班回來時(快樂地)叫喊,可能表示對主人滿意度的正面預測結果。如果狗狗在淩晨 3 點主人熟睡時(也許痛苦地)哀叫,可能表示對主人滿意度的強烈負面預測結果。

線性學習器可以很好地擴展到大量數據。對大規模數據集使用特征組合是學習高度復雜模型的一種有效策略。 神經網絡可提供另一種策略。


引用

特征組合 (Feature Crosses):組合獨熱矢量

特征組合--組合獨熱矢量