機器學習之特徵組合:組合獨熱向量

Lois發表於2020-06-17

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

coutry: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
]

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

binnned_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
]

現在, 假設我們的模型需要根據以下兩個特徵來預測狗主人對狗狗的滿意程度:
1.行為型別 ( 叫、 偎依等 )
2.時段
如果我們根據這兩個特徵構建以下特徵組合:

[ behavior type X time of day ]

我們最終獲得的預測能力將遠遠超過任一特徵單獨的預測能力.例如, 如果狗狗在下午 5 點主人下班回來時 ( 快樂地 ) 叫喊, 可能表示對主人滿意度的正面預測結果.如果狗狗在凌晨 3 點主人熟睡時 ( 也許痛苦地 ) 哀叫, 可能表示主人對滿意度的強烈負面預測結果.
線性學習可以很好地擴充套件到大量資料.對大規模資料集使用特徵組合是學習高度複雜模型的一種有效策略.神經網路可提供另一種策略.

本作品採用《CC 協議》,轉載必須註明作者和本文連結
Hacking

相關文章