「維度」一詞是特徵向量中元素數量的同義詞。 部分類別特徵是低維度。例如:
功能名稱 | 類別數量 | 類別範例 |
---|---|---|
snowed_today | 2 | True、False |
skill_level | 3 | 新手、從業人員、專家 |
season | 4 | 冬季、春季、夏季、秋季 |
day_of_week | 7 | 週一、週二、週三 |
行星 | 8 | 水星、金星、地球 |
如果類別特徵的可能類別數量較少,您可以將其編碼為詞彙。使用詞彙編碼時,模型會將每個可能的類別值視為個別特徵。訓練期間,模型會學習各類別的不同權重。
舉例來說,假設您要建立模型,根據名為 car_color
的類別特徵等因素預測車輛價格。或許紅車比綠車更有價值。
由於製造商提供的外觀顏色數量有限,car_color
是低維度的類別特徵。下圖建議 car_color
的詞彙 (可能的值):
練習:確認您的理解程度
"Red"
」不是浮點數。您必須將 "Red"
等字串轉換為浮點數。索引編號
機器學習模型只能操控浮點數。 因此,您必須將每個字串轉換為不重複的索引編號,如下圖所示:
將字串轉換為不重複的索引編號後,您需要進一步處理資料,以利模型瞭解值之間的有意義關係。如果類別特徵資料保留為索引整數並載入模型,模型會將索引值視為連續浮點數。模型會認為「紫色」的可能性是「橘色」的六倍。
one-hot 編碼
建立詞彙表的下一個步驟,是將每個索引編號轉換為one-hot 編碼。在 one-hot 編碼中:
- 每個類別都以 N 個元素的向量 (陣列) 表示,其中 N 是類別數量。舉例來說,如果
car_color
有八個可能的類別,則代表的 one-hot 向量會有八個元素。 - 在 one-hot 向量中,只有一個元素的值為 1.0,其餘元素的值皆為 0.0。
舉例來說,下表顯示 car_color
中每種顏色的 one-hot 編碼:
功能 | 紅色 | Orange | 藍色 | 黃色 | 綠色 | 黑色 | 紫色 | 棕色 |
---|---|---|---|---|---|---|---|---|
「紅色」 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
「Orange」 | 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 |
傳遞至特徵向量的是獨熱向量,而非字串或索引編號。模型會為特徵向量的每個元素學習個別權重。
下圖說明詞彙表示法中的各種轉換:
稀疏表示法
如果特徵的值大多為零 (或空白),則稱為稀疏特徵。許多類別特徵 (例如 car_color
) 往往是稀疏特徵。稀疏表示法:在稀疏向量中儲存 1.0 的位置。舉例來說,"Blue"
的 one-hot 向量為:
[0, 0, 1, 0, 0, 0, 0, 0]
由於 1
位於位置 2 (從 0 開始計數),因此先前單一熱向量的稀疏表示法為:
2
請注意,稀疏表示法使用的記憶體遠少於八個元素的 one-hot 向量。請務必注意,模型必須訓練單熱編碼向量,而非稀疏表示法。
類別型資料中的離群值
與數值資料一樣,類別資料也包含離群值。假設 car_color
不僅包含熱門顏色,還包含一些不常使用的離群值顏色,例如 "Mauve"
或 "Avocado"
。與其為每個離群值顏色提供個別類別,不如將這些顏色歸入單一「全方位」類別,也就是詞彙外 (OOV)。換句話說,所有離群值顏色都會歸入單一離群值特徵分塊。系統會為該離群值區學習單一權重。
編碼高維度類別特徵
部分類別特徵的維度數量較多,例如下表中的特徵:
功能名稱 | 類別數量 | 類別範例 |
---|---|---|
words_in_english | ~500,000 | "happy", "walking" |
US_postal_codes | ~42,000 | 「02114」、「90301」 |
last_names_in_Germany | ~850,000 | 「Schmidt」、「Schneider」 |
如果類別數量較多,通常不適合使用 one-hot 編碼。 嵌入 (詳見另一個嵌入模組) 通常是更好的選擇。嵌入可大幅減少維度數量,對模型有兩項重要優點:
- 模型訓練速度通常會更快。
- 建構的模型通常能更快推斷預測結果。也就是說,模型延遲時間較短。
雜湊 (也稱為雜湊技巧) 是較不常見的維度縮減方式。