「維度」一詞是一組元素中元素數量的同義詞。 「特徵向量」。 部分類別特徵的維度是低維度。例如:
功能名稱 | 類別數量 | 範例類別 |
---|---|---|
snowed_today | 2 | 是、否 |
skill_level | 3 | 初學者、從業人員、專家 |
season | 4 | 冬季、春季、夏季、秋季 |
day_of_week | 7 | 週一、週二、週三 |
行星 | 8 | 水星、金星、地球 |
如果類別地圖項目的可能類別數量偏低,您可以 將其編碼為詞彙透過詞彙編碼,模型 可能的類別值做為獨立特徵。在訓練期間 就會針對每個類別學習不同的權重
舉例來說,假設您要建立模型來預測汽車的價格
也就是 car_color
的類別特徵上。
也許紅車的價值比綠車更重要。
由於製造商提供的外觀顏色有限,因此 car_color
是
這是提供低維度類別特徵的
下方插圖列出了
car_color
:
練習:檢查您的直覺
"Red"
不是浮點數。個人中心
必須將 "Red"
之類的字串轉換為浮點數。
索引號碼
機器學習模型只能操控浮點數。 因此,您必須將每個字串轉換為不重複的索引號碼,如 如下圖所示:
檢視您的直覺
"Black"
(索引號碼 5) 是更有意義的 5 倍
比 "Orange"
還差 (索引號碼 1)。
"Black"
(索引號碼 5) 視為
對模型來說意義是比"Orange"
更有意義的 5 倍
(索引號碼 1)。
one-hot 編碼
建立詞彙的下一步是將每個索引號碼轉換為 one-hot 編碼。 在 one-hot 編碼中:
- 每個類別都會由 N 個元素的向量 (陣列) 表示,其中 N
是類別數量。舉例來說,如果
car_color
可能 則代表的 one-hot 向量會有八個元素。 - 在單熱向量中,恰好有「一個」元素的值是 1.0; 其餘所有元素的值均為 0.0。
舉例來說,下表顯示
car_color
:
功能 | 紅色 | Orange | 藍色 | 黃色 | 綠色 | Black | 紫色 | 棕色的 |
---|---|---|---|---|---|---|---|---|
「紅色」 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
「橘色」 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
「藍色」 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
「黃色」 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
"綠色" | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
「黑色」 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
「紫色」 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
「棕色」 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
是單熱向量,而非字串或索引號碼 加入特徵向量模型會學習 特徵向量
下圖說明 Google Cloud Storage 中的各種轉換 詞彙表表示法:
稀疏表示法
屬性值通常為零 (或空白) 的特徵會視為
稀疏特徵:多個
類別特徵 (例如 car_color
) 往往是稀疏的特徵。
稀疏表示法
意味著會儲存 1.0 的「位置」
建立第一個 Pod例如,"Blue"
的 one-hot 向量為:
[0、0、1、0、0、0、0、0]
由於 1
位於第 2 名 (當計數起始為 0 時),
前一個 one-hot 向量的稀疏表示法如下:
2
請注意,稀疏表示法消耗的記憶體 八元素中的單熱向量重要的是,模型必須訓練 one-hot 向量,而非稀疏表示法。
類別型資料中的離群值
就像數值資料,類別型資料也包含離群值。假設
car_color
不僅包含熱門的顏色,也有一些很少使用
離群顏色,例如 "Mauve"
或 "Avocado"
。
您不需要為每個離群顏色分別指定類別
就能將他們整合成單一的「貓咪」項目稱為超出詞彙範圍的類別
(OOV)。換句話說,所有離群值會繫結至單一顏色
離群值值區。系統會學習該離群值區的單一權重。
為高維度類別特徵編碼
有些類別特徵的維度數量較多 請使用下表中的應用程式 ID 操作:
功能名稱 | 類別數量 | 範例類別 |
---|---|---|
words_in_english | 約 50 萬個 | 「happy」、「步行」 |
US_postal_codes | 約 42,000 人 | 「02114」、「90301」 |
last_names_in_Germany | ~850,000 次 | 「Schmidt」、「Schneider」 |
如果類別數量較多, one-hot 編碼通常會比較不理想。 嵌入, 「嵌入」模組通常為 更好的選擇嵌入會大幅降低 對模型有兩大好處:
- 模型的訓練速度通常比較快。
- 建構的模型通常會更快地推論出預測。也就是說, 能縮短延遲時間
雜湊 (也稱為雜湊 是減少維度數量的常見做法。
,瞭解如何調查及移除這項存取權。