模型看不懂文字,類別要先編碼。無序類別(顏色、城市)用 One-hot,
有序類別(尺寸、學歷)用 Label——選錯會讓模型誤判大小關係。
「紅、綠、藍」、「台北、台中、高雄」這種類別文字,模型無法直接運算,要先編碼成數字。兩大主流:One-hot(每個類別開一欄,是1否0)適合無序類別;Label(直接編號 0,1,2)適合有序類別。選錯會誤導模型。
每個類別一欄。紅=[1,0,0]、綠=[0,1,0]、藍=[0,0,1]。適合無序(顏色、城市),不會讓模型誤以為有大小關係。缺點:類別多時欄位爆炸。
直接編號:小=0、中=1、大=2。適合有序(尺寸、學歷)。缺點:用在無序類別會讓模型誤以為「藍(2) > 紅(0)」。
關鍵判斷:類別之間「有沒有大小順序」?有→Label;沒有→One-hot。把「城市」做 Label 編碼是經典錯誤。
有一欄「顏色:紅/綠/藍」。切換編碼方式,看它變成什麼數字,以及為什麼無序類別該用 One-hot。
| 方法 | 怎麼做 | 注意 |
|---|---|---|
| One-Hot | 每類別一個 0/1 欄 | 類別多會維度爆炸 |
| Label Encoding | 類別轉整數 | 會植入假順序,適序位或樹模型 |
| Target Encoding | 用目標均值編碼 | 強但易洩漏,需交叉擬合 |
| Frequency/Hashing | 用頻率或雜湊 | 處理高基數 |
類別特徵須編碼成數值模型才能用,iPAS 特徵工程考點(初級科目一、中級科目三)。重點:無序類別用 One-Hot(不引入假大小)、有序用序數編碼、高基數用目標編碼或嵌入。易混點:別用 Label 編碼(0、1、2)處理無序類別——會引入不存在的順序、害了線性模型;目標編碼要小心資料洩漏、須在交叉驗證折內計算。情境:把資費方案、地區、職業等轉成數值。
想練情境題與詳解 → AI 學習與考證地圖
多數模型只吃數值,需把文字類別轉成數值;不同編碼方式會影響表現與是否引入錯誤的順序關係。
One-Hot 每類別一個 0/1 欄(無順序、適合名目類別但維度大);Label 給整數(省維度但引入假的大小順序,適合有序類別或樹模型)。
One-Hot 會爆維度;可用目標編碼(target encoding)、頻率編碼、雜湊編碼(hashing)或嵌入(embedding)。
用該類別的目標平均值編碼,容易資料洩漏與過擬合;要用交叉折或留一方式計算、加平滑,且只用訓練資料。
不一定;樹能處理整數編碼的類別,One-Hot 反而可能讓分裂變差。LightGBM 與 CatBoost 對類別有原生處理。