Binary Encoding是一種用於機器學習中分類變數編碼的技術,它先將每個類別標籤轉換為整數,然後將這些整數轉換成二進位(binary)數字,最後將二進位的每一位拆分成獨立的欄位。例如,有8個類別時,普通的One-Hot Encoding需要8欄位,而Binary Encoding只需3欄,因為2^3=8,大幅減少維度,節省空間且避免資料稀疏。
這種方法適用於高基數(high cardinality)分類變數,能減輕One-Hot Encoding帶來的維度爆炸問題,同時克服Label Encoding可能導致的虛假序列關係。Binary Encoding既保留了類別的獨特性,也提升了編碼緊湊度,對樹模型等常見機器學習模型表現良好。
缺點是轉換後的數據可讀性較差,且部分模型(如線性模型)可能無法有效利用二進位分割特性。Python中通常使用category_encoders套件實現Binary Encoding。總結:
- 先使用Label Encoding將類別轉為整數。 將整數轉為二進位表示。 將二進位的每一位拆分成獨立欄位。 特別適合高基數類別變數,維度縮減明顯。