---
title: "高基數特徵（High Cardinality）"
slug: high-cardinality
language: zh-TW
source: https://aiterms.tw/terms/high-cardinality
updated_at: 2026-06-22
tags: [特徵工程, 機器學習, 資料處理, 推薦系統]
ipas_term: false
---

# 高基數特徵（High Cardinality）

高基數特徵（High Cardinality）指某個類別型特徵包含大量不同取值的情況，例如用戶 ID、商品 SKU、地理位置等可能有數萬至數百萬種取值，直接進行 One-Hot 編碼會導致維度爆炸，需

## 完整說明

高基數特徵（High Cardinality）描述類別型變數中唯一取值數目極多的情況。以電商為例，商品 ID 可能有數百萬種取值，直接 One-Hot 編碼將產生同等數量的稀疏維度，不僅造成記憶體與計算資源浪費，更可能引發維度詛咒，使模型難以有效學習。常見處理策略包含目標編碼（Target Encoding）、嵌入向量（Embedding）、頻率編碼（Frequency Encoding）以及特徵雜湊（Feature Hashing）。正確處理高基數特徵是推薦系統、廣告點擊率預測等任務的關鍵技術難點。

## 常見問題

### 高基數特徵為什麼不能直接用 One-Hot 編碼？

One-Hot 編碼的維度等於類別數量。若某特徵有 100 萬種取值（如商品 SKU），One-Hot 後每個樣本的特徵向量長度變為 100 萬，且 99.9999% 的位置都是 0。這導致三個問題：記憶體爆炸（大型資料集無法載入）、計算低效（稀疏矩陣乘法相較稠密 Embedding 效率差）、統計信號不足（長尾類別出現次數極少，模型無法學習可靠的權重）。更深層的問題是 One-Hot 假設所有類別彼此完全無關，無法表達「MacBook Pro 和 MacBook Air 是同類產品」這類類別間的語意相似性，而 Embedding 能透過訓練自動學習這種關係。

### 如何判斷一個高基數特徵應該用目標編碼還是 Embedding？

判斷依據主要有兩點：模型類型和基數大小。若使用的是梯度提升樹（XGBoost、LightGBM）等非深度學習模型，通常選目標編碼或頻率編碼，因為這類模型不支援 Embedding 層。若使用神經網路類模型，Embedding 是常用選擇，因為它能與整個網路端到端聯合訓練，直接最佳化下游任務目標，並捕捉類別語意關係。基數超過數千時，Embedding 的維度壓縮優勢更加明顯；基數在數十至數百時，兩種方法效果差異較小，可以交叉驗證比較。目標編碼使用時務必防止資料洩漏。

### iPAS 考題中高基數特徵常考哪些知識點？

iPAS 考題中高基數特徵通常以特徵工程和資料前處理的題目形式出現，核心考點有三：一是辨識問題（「以下哪個特徵屬於高基數」：用戶 ID、商品 SKU、IP 地址是正確選項；性別、月份是低基數）；二是處理方法選擇（「對高基數特徵，One-Hot 的缺點是什麼，應使用哪些替代方案」：目標編碼、Embedding、Feature Hashing）；三是目標編碼的資料洩漏問題（「直接對全訓練集計算目標均值作為編碼，有何風險」：資料洩漏，需在交叉驗證 Fold 內分別計算）。

---

來源：https://aiterms.tw/terms/high-cardinality
快查頁：https://aiterms.tw/terms/high-cardinality
最後更新：2026/06/22
深度解說：https://aiterms.tw/learning/what-is-high-cardinality