🔑 名詞卡
類別變數編碼(Label/One-hot/Target Encoding)
🎯 定義
將非數值型的類別變數(Categorical Variables)轉換為模型可辨識與運算的數值特徵的三種常見方法,選擇依據為類別是否具順序、類別數量(基數)與資料量。
三種方法比較
| 方法 | 做法 | 適用情境 | 優點 | 風險/限制 |
|---|---|---|---|---|
| Label Encoding | 每個類別對應一個整數(小學→0、高中→1) | 具明確順序關係的類別(Ordinal) | 轉換快速、佔用空間小 | 誤用於無序類別會讓模型誤解為有數值大小意義 |
| One-hot Encoding | 每個類別新增一個 0/1 欄位 | 無序類別變數(Nominal) | 保留完整資訊,不引入順序誤解 | 高基數類別會大幅增加特徵維度 |
| Target Encoding | 以類別在目標變數上的統計量(平均值/轉換率)取代 | 高基數類別變數,且與目標變數高度關聯 | 保留目標相關資訊,不造成維度爆炸 | 易造成資料洩漏,須搭配交叉驗證 |
記憶技巧
「有序用 Label、無序用 One-hot、類別太多且跟目標有關就用 Target」。
易混淆
- Label Encoding 誤用於無序類別(如城市名稱):模型可能誤以為「台北=0 < 台中=1 < 高雄=2」存在大小關係,這是最常見的誤用陷阱。
📖 課文原文「Label Encoding(標籤編碼):適用情境:類別具有明確順序關係(Ordinal Variables)……風險:若誤用於無序類別(Nominal Variables),模型可能誤解為數值之間具有數學意義。」