iPAS 備考專區 登入

iPAS AI 應用規劃師 中級 科目二 大數據處理分析與應用・114 年第二次・L22・第 17 題

梯度提升樹的「會員等級」特徵編碼要注意什麼?

原題

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

白話

電商公司的資料集裡有一個「會員等級」欄位,分為「一般、白金、黑卡」三個類別。他們要用梯度提升樹(Gradient Boosting Tree)演算法建立預測模型。

問你:在對「會員等級」這種類別型特徵進行編碼時,應該特別注意哪一種風險或問題?

一句話總結

對「一般、白金、黑卡」直接用數字 0、1、2 做標籤編碼,模型會以為這三個等級有「0 < 1 < 2」的數值大小關係,標籤編碼在沒有真實順序的類別上,可能讓模型誤判存在順序關係,導致特徵重要性偏誤。

情境

先感受問題:「紅藍綠」三種顏色能比大小嗎?

優購電商的資料科學家曉君,要對「會員等級」(一般、白金、黑卡)做特徵編碼,把文字類別轉成數字,讓梯度提升樹模型能夠使用。

她最直覺的做法是:一般 = 0、白金 = 1、黑卡 = 2。這叫做標籤編碼(Label Encoding)。

但問題是:梯度提升樹在分裂節點時,會把這三個值當作連續數值來處理。模型「看到」的是 0 < 1 < 2 的大小關係,好像「黑卡比白金大 1、比一般大 2」。

如果「一般、白金、黑卡」在消費金額上確實有遞增關係,這樣編碼還可以。但如果這三個等級的消費習慣不是線性排列的(例如白金和黑卡都消費很高,一般消費低),模型就會學到錯誤的「大小關係」,影響特徵重要性計算的準確性。

舊方法

各種編碼方法的潛在問題

  1. 標籤編碼的順序誤導:把「一般 = 0、白金 = 1、黑卡 = 2」,模型以為 (黑卡 - 白金) 的差距 = (白金 - 一般) 的差距,而且黑卡在「類別大小」上等於白金的兩倍。如果沒有真實的等距順序關係,這樣的編碼會讓模型產生錯誤的特徵解讀。
  2. 獨熱編碼的維度爆炸問題:對 3 個類別做獨熱編碼,產生 3 個新欄位,維度從 1 增加到 3。類別數少時還好,但如果有「城市」欄位含 300 個城市,獨熱編碼就產生 300 個維度,記憶體和計算成本爆炸。
  3. 目標編碼的資料洩漏風險:目標編碼用「該類別對應的目標變數(y)的均值」來替換類別標籤。如果計算時把測試集的 y 也用進去,就造成資料洩漏(Data Leakage),模型過度樂觀。需要嚴格的 k-fold 目標編碼來防止。
  4. 順序編碼對無序類別的問題:「一般 < 白金 < 黑卡」如果確實有消費力的遞增關係,順序編碼是有效的;但如果類別間的消費差異是非線性的,數值的「距離」就失真了。
  5. 類別型特徵不做任何處理的後果:大多數機器學習模型(包括梯度提升樹)需要數值型輸入,直接把文字類別丟進去會報錯或產生不可預期的行為。

新方法

標籤編碼在無序類別上引入假順序,導致特徵重要性偏誤

曉君如果直接用標籤編碼(Label Encoding):一般 = 0、白金 = 1、黑卡 = 2,梯度提升樹在選擇分裂點時,可能會學到「會員等級 ≤ 1 的分裂」,相當於在說「一般和白金 vs 黑卡」,或「會員等級 ≤ 0 的分裂」,相當於「一般 vs 白金和黑卡」。

這種分裂本身不一定錯,但背後隱含的「數值大小邏輯」(0 比 1 小 1,1 比 2 小 1)可能不符合實際業務意義,導致決策樹選出的分裂邊界是基於錯誤的假設。

更好的處理方式:如果「一般 < 白金 < 黑卡」有真實的消費力遞增關係,可以用順序編碼(Ordinal Encoding);如果是無序類別(例如「衣服、鞋子、包包」),用獨熱編碼(One-Hot Encoding)更安全。梯度提升樹(如 XGBoost、LightGBM)有些版本能直接處理類別型特徵,不需要手動編碼。

這就是選項 B 講的:直接使用標籤編碼(Label Encoding)可能使模型誤判類別間存在順序關係,導致特徵重要性偏誤。

錯選項

為什麼其他選項是錯的

A應優先採用獨熱編碼(One-Hot Encoding),以減少類別之間的相依性與記憶體使用量

字面在說什麼

對所有類別特徵都用獨熱編碼,這樣最安全,還能減少記憶體用量。

為什麼不對

這道題說的是「會員等級」這個特定特徵,它可能有真實的順序關係(一般 < 白金 < 黑卡)。如果確實有順序,用獨熱編碼反而丟失了這個順序資訊。而且,獨熱編碼不會「減少記憶體使用量」,它會增加維度(從 1 個欄位變成 3 個欄位),記憶體使用量是增加的,不是減少。選項說法本身就有事實錯誤。

誰會選錯

把「獨熱編碼是安全的預設選項」奉為鐵則的人。獨熱編碼適合無序類別,類別數少時效果好,但不是永遠優先的選擇。

C使用目標編碼(Target Encoding)會自動消除過擬合(Overfitting)風險

字面在說什麼

目標編碼是好方法,用了就不用擔心過擬合。

為什麼不對

這是反過來的。目標編碼(Target Encoding)如果使用不當,反而會增加過擬合風險(當樣本數少時,單一類別的目標均值估計不穩定)。「自動消除過擬合」的說法完全錯誤。目標編碼的主要挑戰是避免資料洩漏,需要用 k-fold 目標編碼來正確實現,絕非能自動解決過擬合的工具。

誰會選錯

聽過「目標編碼可以更好地捕捉類別資訊」就以為它很強大,沒有深入了解其局限性和風險的人。

D若類別數量較少,建議先使用主成分分析(PCA)進行降維

字面在說什麼

類別不多的時候(只有 3 個),先用 PCA 把特徵壓縮一下,再餵給模型。

為什麼不對

PCA 是針對連續型數值特徵的降維方法,透過線性組合找出方差最大的方向。對類別型特徵(即使先做了獨熱編碼),PCA 的操作在語意上沒有意義,而且只有 3 個類別根本不需要降維(3 個類別獨熱編碼才 3 個維度,比 PCA 後的 k 個主成分還少)。PCA 用錯地方是一個常見的資料科學誤區。

誰會選錯

把「高維度特徵 → 用 PCA 降維」當作萬用規則的人,沒有注意到 PCA 的前提是連續型數值特徵,不適用於類別型資料。

變形題

同個考點下次怎麼變形

延伸

想再往下看,這 5 個

答案、題目或解析有問題?回報這題

出處:iPAS 經濟部產業人才能力鑑定 ・ 114 年第二梯次 iPAS AI 應用規劃師 中級 科目二 大數據處理分析與應用 第 17 題

看官方原文 PDF

原題 © 經濟部產業發展署,AITerms.tw 僅作教學解析使用,本站解析以 CC BY-NC-SA 4.0 授權。