類別特徵 是什麼?

Categorical Features:類別特徵 的完整解釋

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

核心概念

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

類別特徵的一個重要性質是「編碼敏感性」:相同的資訊用不同編碼方式表示,模型的性能可能差異巨大。例如,將城市名稱編碼為 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. 連續特徵:連續特徵可直接用於模型,類別特徵需要編碼。連續特徵可用歸一化、分箱等預處理,類別特徵需要選擇編碼策略。處理類別特徵的關鍵是「選擇合適的編碼方式」。

常見問題