資料知識地圖 · 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 考題練習」直接實戰。

應用場景

One-hotLabel EncodingTarget EncodingEmbedding

評估指標

維度數資訊保留

iPAS 歷屆考題詳解(7 題)

先自行作答,再展開詳解。題目出處均為 iPAS AI 應用規劃師正式考題,著作權屬原主辦單位。

第四梯次初級AI應用規劃師第一科人工智慧基礎概論 第2題

下列哪一種特徵工程技巧,最適合將「星期幾」和「24 小時制時間」這兩個欄位結合,以預測通勤時間?

  1. AOne-hot 編碼 (One-hot encoding)
  2. B正規化 (Normalization)
  3. C特徵交叉 (Feature Cross)
  4. D寬深模型 (Wide and Deep)
看正解與逐選項詳解

正解:C

正確答案:(C) 【正解解析】 通勤時間的高峰同時取決於「星期幾」與「幾點」的組合:星期一早上 8 點與星期日早上 8 點的交通狀況截然不同,單看任一欄位都無法表達這種聯合效應。特徵交叉(Feature Cross)把兩個欄位的取值組合成新特徵(例如「星期一_08時」),讓模型直接學習「工作日尖峰時段」這類交互作用,正是結合兩欄位以預測通勤時間最合適的特徵工程技巧。 【為何其他選項錯了?】 - (A):One-hot 編碼只是把「星期幾」與「時間」各自展開成獨立的二元向量,編碼本身不會產生任何組合資訊;線性模型無法藉此表達「星期一 8 點」這類特定組合的尖峰效果,達不到「結合兩欄位」的目的。 - (B):正規化是把數值特徵縮放到固定範圍(如 0 到 1)的尺度調整技巧,不會把兩個欄位結合;且「星期幾」屬類別資料,也不是正規化的處理對象。 - (D):寬深模型(Wide and Deep)是一種模型架構,結合記憶(wide)與泛化(deep)能力,常用於推薦系統;它不是特徵工程技巧,層次與題目所問不同。 提示:題幹關鍵是「結合兩個欄位」捕捉交互作用,對應特徵交叉;編碼與正規化只處理單一欄位,Wide and Deep 是模型架構。
115年第二次初級AI應用規劃師第一科人工智慧基礎概論 第13題

某銀行建立機器學習模型預測客戶的貸款違約風險。資料集中有一個「職業類別」欄位,包含「工程師、教師、業務、自由業」等類別。工程師計劃將此欄位進行編碼處理後直接輸入線性模型。下列哪一種編碼方式最可能導致模型錯誤解讀類別之間的關係?

  1. AOne-Hot Encoding
  2. BBinary Encoding
  3. CTarget Encoding
  4. DLabel Encoding
看正解與逐選項詳解

正解:D

正確答案:(D) 【正解解析】 「職業類別」屬於無順序的名目變數。Label Encoding 會把類別對應成 0、1、2、3 等單一整數,線性模型會將這些整數視為具有大小與距離意義的連續數值,等於替無序類別引入不存在的順序關係,使模型錯誤解讀「工程師、教師、業務、自由業」之間的關係。在直接輸入線性模型的前提下,這是最可能造成誤讀的編碼方式。 【為何其他選項錯了?】 - (A):One-Hot Encoding 為每個類別建立獨立的 0/1 欄位,各類別彼此正交,不引入任何順序資訊,是線性模型處理無序類別的標準安全作法。 - (B):Binary Encoding 先給類別編號再轉成二進位拆成多個欄位,雖然欄位語意較不直觀,但不像單一整數那樣直接呈現大小順序,引入順序誤解的程度低於 Label Encoding。 - (C):Target Encoding 以各類別對應的目標統計量(如平均違約率)取代類別,其主要風險是目標洩漏與過擬合,而非讓模型把類別誤讀為大小關係。 提示:題幹關鍵是「無序類別+線性模型」;單一整數編碼會製造虛假順序,One-Hot 才是安全選項。
114年第二梯次中級AI應用規劃師第二科大數據處理分析與應用 第5題

在進行資料前處理時,若使用 Label Encoding 將類別變數轉換為數字型態,下列何者為最常見的潛在風險?

  1. A無法處理缺值
  2. B會引入類別之間的虛假順序關係
  3. C無法擴展至新資料
  4. D記憶體佔用過高
看正解與逐選項詳解

正解:B

正確答案:(B) 【正解解析】 Label Encoding 把類別直接對應成 0、1、2 等整數。問題在於整數天生有大小順序,若原本的類別是無序的(如紅、綠、藍),模型(尤其是線性模型與距離型演算法)會誤以為「藍 > 綠 > 紅」,或認為某兩類的距離比另外兩類更遠。這種憑空產生的順序關係就是虛假順序,會誤導模型學習,是 Label Encoding 最常見的潛在風險。 【為何其他選項錯了?】 - (A):缺值處理與編碼方式是兩回事;Label Encoding 前後都可以另行補值,這不是它特有的風險。 - (C):新資料出現未見過的類別確實會使編碼器出錯,但這是所有編碼方法共同的工程問題(可用 unknown 類別處理),並非 Label Encoding 特有且最常見的核心風險。 - (D):Label Encoding 每個類別只佔一個整數欄位,記憶體用量反而最低;佔用記憶體的是 One-Hot 將單欄展開成大量欄位的情況。 提示:無序類別使用 Label Encoding 會引入虛假順序;無序用 One-Hot,有序才考慮 Label Encoding。
114年第二梯次中級AI應用規劃師第二科大數據處理分析與應用 第17題

某電商公司欲利用顧客行為資料建立消費預測模型,其中「會員等級」欄位包含「一般、白金、黑卡」三種類別。若模型採用梯度提升樹(Gradient Boosting Tree)演算法,資料科學家在進行特徵編碼時應特別注意下列何種情況?

  1. A應優先採用獨熱編碼(One-Hot Encoding),以減少類別之間的相依性與記憶體使用量
  2. B直接使用標籤編碼(Label Encoding)可能使模型誤判類別間存在順序關係,導致特徵重要性偏誤
  3. C使用目標編碼(Target Encoding)會自動消除過擬合(Overfitting)風險
  4. D若類別數量較少,建議先使用主成分分析(Principal Component Analysis, PCA)進行降維
看正解與逐選項詳解

正解:B

正確答案:(B) 【正解解析】 「一般、白金、黑卡」雖有隱含等級,但若未經確認就直接使用 Label Encoding,編碼出的整數會被模型當成可比較、可加減的數值;若編碼順序與真實等級或貢獻不一致,樹模型分裂時就可能產生系統性偏差,並扭曲特徵重要性的解讀。因此使用標籤編碼時必須特別注意此風險,(B) 是最貼近實務的提醒。 【為何其他選項錯了?】 - (A):One-Hot 是把一欄拆成多欄,維度與記憶體是增加而非減少;對樹模型還會稀釋單一特徵的分裂效益,「優先採用」與「減少記憶體」兩點皆不成立。 - (C):目標編碼以容易過擬合聞名(尤其是小樣本類別),需搭配平滑或交叉驗證緩解;「自動消除過擬合風險」把它的主要缺點誤述為優點。 - (D):PCA 用於連續數值特徵降維;類別只有三種並無降維需求,也不適合直接對類別變數做 PCA。 提示:標籤編碼一經編號即隱含排序;樹模型雖相對耐受,仍應驗證編碼順序與真實等級是否一致。
115年第一次中級AI應用規劃師第二科大數據處理分析與應用 第11題

某團隊為電信公司建立用戶月租方案續約預測模型,資料集包含兩個類別特徵:「客服評價」共有 5 個等級(非常不滿意至非常滿意),具明確順序關係;「居住縣市」共有22個不同類別,類別之間無順序關係。團隊計劃分別以 Logistic Regression 與XGBoost訓練模型,並對上述特徵進行編碼。請問下列哪個編碼方案最適當?

  1. A兩模型皆將「客服評價」與「居住縣市」進行 One-Hot Encoding,保留全部欄位並使用相同特徵矩陣訓練模型
  2. BLogistic Regression 將「客服評價」做 Ordinal Encoding、「居住縣市」以歷史續約率進行編碼且於資料切分前計算;XGBoost 對兩個特徵皆採 Ordinal Encoding 處理
  3. CLogistic Regression 將「客服評價」做 Ordinal Encoding、「居住縣市」進行 One-Hot Encoding 並採 Drop First;XGBoost 將「客服評價」採 Ordinal Encoding,「居住縣市」以類別型態輸入並啟用 enable_categorical
  4. D兩個模型均將「客服評價」以平均續約率進行編碼,「居住縣市」先做 One-Hot Encoding 再以 PCA 降維,並統一作為兩模型輸入特徵
看正解與逐選項詳解

正解:C

正確答案:(C) 【正解解析】 「客服評價」五等級有明確順序,用 Ordinal Encoding 保留次序資訊最合適。「居住縣市」22 類且無順序:對線性模型(Logistic Regression)應以 One-Hot 展開,並 Drop First 一欄避免虛擬變數陷阱(完全共線性);對 XGBoost 這類樹模型,可將縣市以類別型態直接輸入並啟用 enable_categorical,由樹自行尋找最佳切分,不必展開成 22 欄。(C) 對兩種模型都採用了各自最合適的編碼,是唯一全對的組合。 【為何其他選項錯了?】 - (A):把有序的客服評價 One-Hot 會遺失順序資訊;且兩模型硬共用同一特徵矩陣,放棄了 XGBoost 原生處理類別的優勢。 - (B):「居住縣市以歷史續約率編碼且於資料切分前計算」是標準的目標洩漏(Target Leakage),使用了含測試集的目標值資訊;對 XGBoost 把無序縣市做 Ordinal,也會憑空引入 22 個縣市的大小順序。 - (D):對有序特徵改用平均續約率編碼同樣有洩漏疑慮;One-Hot 後再 PCA 會把類別語意混合成難以解釋的成分,對樹模型並無必要。 提示:有序類別用 Ordinal;無序少類用 One-Hot(線性模型記得 Drop First);樹模型可用原生類別;目標編碼必須在切分後只用訓練集計算。
115年第一次中級AI應用規劃師第二科大數據處理分析與應用 第42題

某共享乘車平台以司機每日營運資料建立線性迴歸(Linear Regression)模型預測司機未來收入,特徵包含 region(註冊營運區域,原始值為字串 A、B、C)。團隊在建模前將 region 轉換為整數 1、2、3,即採用標籤編碼(Label Encoding)。模型上線測試後發現,線性迴歸模型對於 C 區(編碼為 3)的預測收入出現明顯高估,顯示模型可能將編碼值誤解為具有線性大小關係。若主管要求不得修改原有的特徵編碼方式,必須維持 1、2、3 的整數表示,但希望從演算法層面降低此類誤解風險,則下列何者最適合作為替代模型?

  1. A羅吉斯迴歸(Logistic Regression)
  2. BRidge迴歸(Ridge Regression)
  3. C支援向量機(Support Vector Machine, SVM)搭配線性核函數
  4. D隨機森林(Random Forest)
看正解與逐選項詳解

正解:D

正確答案:(D) 【正解解析】 線性迴歸把 region 的 1、2、3 當成連續數值,等於強行假設各區效果沿編碼值等距線性變化,才造成 C 區被高估。隨機森林由決策樹組成,樹對數值特徵只做門檻切分(如 region ≤ 1.5、region ≤ 2.5),實際上是把 1、2、3 切成三個互不牽連的組別,各組各自估計,不假設任何線性大小關係;在不能更改編碼的前提下,從演算法面化解標籤編碼被當成大小關係的風險,樹系模型是最合適的選擇。 【為何其他選項錯了?】 - (A):羅吉斯迴歸是分類模型,輸出的是機率;預測「收入」這種連續值屬於工具誤用,且它對特徵同樣採線性假設。 - (B):Ridge 只是加了 L2 正則化的線性迴歸,係數受到收縮,但「region 每加 1、收入等距變動」的線性假設原封不動,C 區仍會被線性外推。 - (C):線性核 SVM(SVR)本質仍是線性模型,對 1、2、3 的解讀與線性迴歸相同,無法化解編碼被誤讀的問題。 提示:標籤編碼搭配線性模型會替類別引入距離假設;不能改編碼時改用樹模型,樹僅依門檻分組、不假設數值距離。
115年第一次中級AI應用規劃師第三科機器學習技術與應用 第24題

某推薦系統工程師處理商品類別特徵,該特徵包含約 3,000 個不同商品項目,每一種商品或其規格皆視為一個獨立類別。請問在高基數(High Cardinality)的情境下,下列哪一種編碼方式最容易造成維度爆炸問題?

  1. A目標編碼(Target Encoding)
  2. B標籤編碼(Label Encoding)
  3. CEmbedding 層(Categorical Embedding)
  4. DOne-Hot編碼(One-Hot Encoding)
看正解與逐選項詳解

正解:D

正確答案:(D) 【正解解析】 One-Hot 編碼為每一個類別開一個維度:3,000 個商品項目會直接變成 3,000 維的稀疏向量,幾乎全為 0 僅有一個 1;若再與其他特徵交叉,維度與記憶體開銷急遽膨脹,樣本相對變得稀疏,模型也更難學習,這就是高基數(High Cardinality)特徵的維度爆炸問題。 【為何其他選項錯了?】 - (A):目標編碼把每個類別映射成該類別的目標統計量(如平均成交率),輸出只有 1 維;其風險在目標洩漏,不在維度爆炸。 - (B):標籤編碼把類別映射成單一整數,同樣只有 1 維;副作用是引入不存在的大小順序關係,與維度爆炸無關。 - (C):Embedding 層把高基數類別壓縮成低維稠密向量(例如 16 至 64 維),正是高基數場景的建議解法,不會造成維度爆炸。 提示:高基數類別特徵避免 One-Hot,改用 Embedding 或 Target Encoding;低基數才適合 One-Hot。

相關節點