類別特徵(Categorical Features)是什麼?

機器學習中取值為有限離散類別的特徵,如性別(男/女)、顏色(紅/綠/藍)、地區等,需要特殊編碼才能用於模型訓練|本頁含完整原理、應用場景、iPAS 考試重點與 3 個常見問答。

英文
Categorical Features
主題標籤
特徵工程、機器學習、資料處理
考點定位
非 iPAS 核心術語
最後更新
2026/06/22
類別特徵(Categorical Features)是什麼? 特徵工程機器學習
術語快查

搜尋意圖: 如果你在找「類別特徵 是什麼」或「類別特徵 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。

TL;DR: 機器學習中取值為有限離散類別的特徵,如性別(男/女)、顏色(紅/綠/藍)、地區等,需要特殊編碼才能用於模型訓練

實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。

下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。

機器學習中取值為有限離散類別的特徵,如性別(男/女)、顏色(紅/綠/藍)、地區等,需要特殊編碼才能用於模型訓練

核心概念

類別特徵在現實應用中無處不在。電商平台上的商品類別、用戶的購買偏好標籤、社群媒體的地理位置、醫療診斷的症狀等都是類別特徵。與連續特徵(如年齡、價格、距離)不同,類別特徵沒有數值大小順序,只有等價或不等價的關係。

類別特徵的一個重要性質是「編碼敏感性」:相同的資訊用不同編碼方式表示,模型的性能可能差異巨大。例如,將城市名稱編碼為 0, 1, 2, 3...,模型會誤以為城市之間有數值關係(0 < 1 < 2),實際上城市之間完全無序。正確選擇編碼方式對模型性能至關重要。

類別特徵可分為兩類:名義特徵(無順序,如顏色、品牌)和順序特徵(有順序,如教育程度:小學 < 中學 < 大學)。處理方式有所不同。

運作原理

標籤編碼(Label Encoding)

將每個類別分配一個整數,如性別中「男」編碼為 0,「女」編碼為 1。實現簡單,計算快速,內存占用小。

優點:編碼簡潔,不增加特徵維度,特別適合樹模型(決策樹、隨機森林、XGBoost)。樹模型內部基於特徵值的大小進行分裂,不關心數值的絕對大小,只關心相對順序。

缺點:對於線性模型和神經網絡,標籤編碼會引入虛假的數值關係。模型可能學到「1 > 0」的含義,認為「女」比「男」更大,這在邏輯上無意義。

獨熱編碼(One-Hot Encoding)

為每個類別創建一個新的二進位特徵。例如,顏色特徵(紅、綠、藍)編碼為三個特徵:[is_red, is_green, is_blue]。顏色為「紅」時編碼為 [1, 0, 0],「綠」時編碼為 [0, 1, 0]。

優點:明確表示每個類別,避免引入虛假的數值關係。對線性模型和神經網絡友好,因為每個類別有獨立的權重。

缺點:高維度類別會導致特徵爆炸。例如,城市特徵有 1000 個類別,編碼後會產生 1000 個新特徵。這被稱為「維度詛咒」,增加計算成本和過擬合風險。

目標編碼(Target Encoding)

用該類別對應的目標變數的統計量(如平均值、點擊率)作為編碼。例如,在推薦系統中,城市特徵的編碼為該城市用戶的平均點擊率。

優點:直接利用目標信息,編碼信息量大,維度低。對於高基數類別(如城市 ID、用戶 ID),避免維度爆炸。

缺點:需要計算目標統計量,容易過擬合(尤其是某些類別樣本很少時)。需要平滑處理(如貝葉斯平滑)避免噪聲。

其他編碼方式

頻率編碼(Frequency Encoding):用類別的出現頻率作為編碼。簡單快速,但丟失類別身份信息。

二進位編碼(Binary Encoding):先將類別轉換為整數,再轉換為二進位表示。維度低,但難以解釋。

嵌入向量(Embeddings):用神經網絡學習的稠密向量表示類別。這是深度學習推薦系統的標準方法。

實際應用

  • 推薦系統:用戶 ID、商品類別、品牌等都是類別特徵。推薦系統通常用嵌入向量表示這些類別,每個類別映射到低維稠密向量。寬深學習結合了標籤編碼(寬部分用獨熱編碼實現特徵交叉)和嵌入向量(深部分)。

  • 廣告點擊率預測:廣告特徵包括廣告創意 ID、廣告主行業、廣告位置等類別特徵。系統用目標編碼或嵌入向量編碼,學習各類別對點擊率的影響。

  • 信用評分:銀行評估客戶信用風險時使用職業、教育程度、居住城市等類別特徵。這些特徵通常用目標編碼(該類別的違約率)進行編碼。

  • 醫療診斷:症狀、患者性別、醫院等類別特徵用於疾病診斷。不同診斷任務選擇不同編碼:樹模型可用標籤編碼,邏輯迴歸需要獨熱編碼。

  • 自然語言處理:詞語、詞性標籤、句法結構等都是類別特徵。通常用詞嵌入(Word2Vec、GloVe、BERT)表示詞語類別。

常見誤區

  • 誤區 1:所有類別特徵都應用獨熱編碼。獨熱編碼並非萬能。對於樹模型,標籤編碼更高效;對於高基數類別,目標編碼或嵌入向量更合適。

  • 誤區 2:類別編碼只影響特徵,不影響模型本身。編碼方式是模型架構的一部分。不同編碼引導模型做不同的歸納,導致性能差異大。

  • 誤區 3:罕見類別無關緊要。罕見類別編碼困難。目標編碼會因樣本少而估計不準,獨熱編碼會產生稀疏向量。需要特殊處理,如合併罕見類別或用平滑技巧。

  • 誤區 4:類別順序無關。對於順序類別(如教育程度),編碼應保留順序信息。用標籤編碼 0, 1, 2, 3 比獨熱編碼更有效,因為順序關係被保留。

與相關技術的比較

  • 類別特徵編碼 vs. 文本特徵提取:兩者都是將非數值資訊轉換為數值形式。類別特徵編碼處理離散的、有限的類別;文本特徵提取處理開放的、無限的文本。文本通常轉換為詞袋、TF-IDF 或嵌入向量。

  • 標籤編碼 vs. 獨熱編碼:標籤編碼低維高效,獨熱編碼高維但清晰。樹模型傾向標籤編碼,線性模型和神經網絡傾向獨熱編碼。

  • 目標編碼 vs. 嵌入向量:目標編碼直接用統計量,嵌入向量用神經網絡學習。目標編碼快速,嵌入向量表達能力更強但需要訓練。推薦系統中嵌入向量更常見。

  • 類別特徵 vs. 連續特徵:連續特徵可直接用於模型,類別特徵需要編碼。連續特徵可用歸一化、分箱等預處理,類別特徵需要選擇編碼策略。處理類別特徵的關鍵是「選擇合適的編碼方式」。

常見問題

什麼時候應該用目標編碼而不是獨熱編碼?

當類別數量很多(高基數)時,優先考慮目標編碼。例如,城市類別有 1000 個值,獨熱編碼會產生 1000 個新特徵,導致維度爆炸。目標編碼只產生 1 個特徵,計算和存儲成本低得多。其次,當目標變數與類別的關係清晰且單調時,目標編碼有效。例如,某城市的平均購買率與是否購買商品高度相關。但如果類別分布極度不均衡(某類別只有 1-2 個樣本),目標編碼估計會很不準,需要用平滑技巧或合併罕見類別。對於低基數類別(少於 10 個值),獨熱編碼通常足夠。

目標編碼中的過擬合風險應該如何規避?

目標編碼的過擬合來自兩個方面:樣本量不足和資料洩漏。解決樣本量不足的標準方法是「貝葉斯平滑」(Bayesian Smoothing),公式為:encoded_value = (count * mean + global_mean * smoothing_factor) / (count + smoothing_factor)。其中 count 是該類別的樣本量,mean 是該類別的目標平均值,global_mean 是全局平均值,smoothing_factor 是平滑參數。樣本多的類別被平滑影響小,樣本少的類別向全局平均靠攏,減少雜訊。關於資料洩漏,編碼時必須只用訓練集計算統計量,驗證集和測試集用訓練集得到的編碼表查詢,避免看到測試資料的目標值。交叉驗證時更需謹慎,避免用全訓練集計算編碼。

如何處理訓練時未見過的新類別?

生產環境中常遇到訓練時沒有的新類別(如新城市、新商品類別)。有幾種處理策略:(1)映射到「未知」或「其他」類別,訓練時提前建立這個類別。(2)用全局統計量(如全局平均點擊率)作為未知類別的編碼,特別適合目標編碼。(3)對於嵌入向量,用隨機初始化的向量表示未知類別,後續可用用戶反饋不斷更新。(4)建立備選方案,如無法編碼某特徵,用其他特徵(如地區信息)進行推斷。在推薦系統中,常用策略 1 或 2,簡單可靠。