資料知識地圖 · 7. 特徵建模
One-hot / Label
類別特徵編碼
觀念教學
模型只認得數字,不認得「工程師」「教師」這些字。類別編碼(Categorical Encoding)負責翻譯 — 翻錯了,模型會把不存在的大小關係當真。
核心觀念
兩大主力:One-hot Encoding 幫每個類別開一個 0/1 欄位,類別之間沒有順序,適合無序(名目)類別;Label Encoding 直接把類別編成 1、2、3,隱含大小順序,只適合有序類別(如低/中/高)。進階選項:Target Encoding 用目標變數的統計值取代類別,Embedding 把高基數類別壓成低維向量。
白話理解
銀行做貸款違約模型,「職業類別」有工程師、教師、業務、自由業 — 彼此沒有高低之分。若用 Label Encoding 編成 1 到 4 丟進線性模型,模型會解讀成「自由業的量值是工程師的 4 倍」— 這個順序是編碼捏造的,不是資料的真相。
選型與代價
- 無序類別:One-hot;代價是維度數隨類別數量暴增
- 有序類別(教育程度、滿意度):Label Encoding,順序本身就是資訊
- 高基數類別(郵遞區號、商品 ID):改用 Target Encoding 或 Embedding,兼顧維度數與資訊保留
- 模型敏感度:線性模型對假順序最敏感;樹模型容忍度較高
- 想讓模型看見「星期幾與時段」的交互作用,用特徵交叉(Feature Cross)組合出新特徵
🎯 口訣:無序 One-hot、有序 Label、類別太多用 Target 或 Embedding。
iPAS 考點
兩題都真實出過:一,「將星期幾和 24 小時制時間結合,預測通勤時間」— 答特徵交叉,因為尖峰效應來自兩欄位的交互作用;二,「職業類別用 Label Encoding 後直接進線性模型」— 錯在讓模型誤讀出不存在的順序與大小關係,正解是改用 One-hot Encoding。
📝 本節掛載 2 題 iPAS 歷屆試題 — 讀完往下到「iPAS 考題練習」直接實戰。
應用場景
評估指標
iPAS 歷屆考題詳解(7 題)
先自行作答,再展開詳解。題目出處均為 iPAS AI 應用規劃師正式考題,著作權屬原主辦單位。
下列哪一種特徵工程技巧,最適合將「星期幾」和「24 小時制時間」這兩個欄位結合,以預測通勤時間?
- AOne-hot 編碼 (One-hot encoding)
- B正規化 (Normalization)
- C特徵交叉 (Feature Cross)
- D寬深模型 (Wide and Deep)
看正解與逐選項詳解
正解:C
某銀行建立機器學習模型預測客戶的貸款違約風險。資料集中有一個「職業類別」欄位,包含「工程師、教師、業務、自由業」等類別。工程師計劃將此欄位進行編碼處理後直接輸入線性模型。下列哪一種編碼方式最可能導致模型錯誤解讀類別之間的關係?
- AOne-Hot Encoding
- BBinary Encoding
- CTarget Encoding
- DLabel Encoding
看正解與逐選項詳解
正解:D
在進行資料前處理時,若使用 Label Encoding 將類別變數轉換為數字型態,下列何者為最常見的潛在風險?
- A無法處理缺值
- B會引入類別之間的虛假順序關係
- C無法擴展至新資料
- D記憶體佔用過高
看正解與逐選項詳解
正解:B
某電商公司欲利用顧客行為資料建立消費預測模型,其中「會員等級」欄位包含「一般、白金、黑卡」三種類別。若模型採用梯度提升樹(Gradient Boosting Tree)演算法,資料科學家在進行特徵編碼時應特別注意下列何種情況?
- A應優先採用獨熱編碼(One-Hot Encoding),以減少類別之間的相依性與記憶體使用量
- B直接使用標籤編碼(Label Encoding)可能使模型誤判類別間存在順序關係,導致特徵重要性偏誤
- C使用目標編碼(Target Encoding)會自動消除過擬合(Overfitting)風險
- D若類別數量較少,建議先使用主成分分析(Principal Component Analysis, PCA)進行降維
看正解與逐選項詳解
正解:B
某團隊為電信公司建立用戶月租方案續約預測模型,資料集包含兩個類別特徵:「客服評價」共有 5 個等級(非常不滿意至非常滿意),具明確順序關係;「居住縣市」共有22個不同類別,類別之間無順序關係。團隊計劃分別以 Logistic Regression 與XGBoost訓練模型,並對上述特徵進行編碼。請問下列哪個編碼方案最適當?
- A兩模型皆將「客服評價」與「居住縣市」進行 One-Hot Encoding,保留全部欄位並使用相同特徵矩陣訓練模型
- BLogistic Regression 將「客服評價」做 Ordinal Encoding、「居住縣市」以歷史續約率進行編碼且於資料切分前計算;XGBoost 對兩個特徵皆採 Ordinal Encoding 處理
- CLogistic Regression 將「客服評價」做 Ordinal Encoding、「居住縣市」進行 One-Hot Encoding 並採 Drop First;XGBoost 將「客服評價」採 Ordinal Encoding,「居住縣市」以類別型態輸入並啟用 enable_categorical
- D兩個模型均將「客服評價」以平均續約率進行編碼,「居住縣市」先做 One-Hot Encoding 再以 PCA 降維,並統一作為兩模型輸入特徵
看正解與逐選項詳解
正解:C
某共享乘車平台以司機每日營運資料建立線性迴歸(Linear Regression)模型預測司機未來收入,特徵包含 region(註冊營運區域,原始值為字串 A、B、C)。團隊在建模前將 region 轉換為整數 1、2、3,即採用標籤編碼(Label Encoding)。模型上線測試後發現,線性迴歸模型對於 C 區(編碼為 3)的預測收入出現明顯高估,顯示模型可能將編碼值誤解為具有線性大小關係。若主管要求不得修改原有的特徵編碼方式,必須維持 1、2、3 的整數表示,但希望從演算法層面降低此類誤解風險,則下列何者最適合作為替代模型?
- A羅吉斯迴歸(Logistic Regression)
- BRidge迴歸(Ridge Regression)
- C支援向量機(Support Vector Machine, SVM)搭配線性核函數
- D隨機森林(Random Forest)
看正解與逐選項詳解
正解:D
某推薦系統工程師處理商品類別特徵,該特徵包含約 3,000 個不同商品項目,每一種商品或其規格皆視為一個獨立類別。請問在高基數(High Cardinality)的情境下,下列哪一種編碼方式最容易造成維度爆炸問題?
- A目標編碼(Target Encoding)
- B標籤編碼(Label Encoding)
- CEmbedding 層(Categorical Embedding)
- DOne-Hot編碼(One-Hot Encoding)
看正解與逐選項詳解
正解:D