功能十字:跨界向量

目前為止,我們主要著重介紹交互使用兩個個別浮點功能的功能。實際運作時,機器學習模型就算擁有持續的功能,仍會顯而易見。但是,機器學習模型經常會跨越單一特徵特徵向量。你可以將單一熱門特徵向量的特徵交錯組合成邏輯組合。例如,假設我們具備國家/地區和語言兩個功能。每個熱源編碼都是由向量產生,其中含有二元特徵,可解釋為 country=USA, country=Francelanguage=English, language=Spanish。然後,如果您使用這些一次性熱度編碼中的特徵功能,則將取得可以解讀為邏輯組合的二元特徵,例如:

  country:usa AND language:spanish

再舉一個例子,假設您將緯度和經度綁定,即可產生獨立的單一元素五個元素向量。例如,特定經緯度應以下列方式表示:

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

假設您建立了這兩個特徵向量的特徵交叉線:

  binned_latitude X binned_longitude

這個功能交叉符號是 25 元素的 one-hot 向量 (24 個零和 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:00 下哭喊了 (業主們從下午 5 點後回公司),則主人對於滿意度很滿意。擁有者會在凌晨 3:00 清醒 (意味著如此),在擁有者入睡時,她很可能是法人是否滿意。

線性學習者則能根據大量資料進行適當調整。對於龐大資料集而言,使用跨境功能的做法是更有效率的策略。神經網路也提供其他策略。