首頁 / 名詞卡 / 資料工程與MLOps / One-hot Encoding(獨熱編碼)

iPAS AI中級🗄️ 資料工程與MLOps
🔑 名詞卡

One-hot Encoding(獨熱編碼)

🎯 定義

為每個類別新增一個 0/1 欄位的類別資料編碼方法(如「紅/藍/綠」變成 is_red、is_blue、is_green 三個欄位),適用於無序類別變數(Nominal Variables)。在 NLP 中則是最基本的詞彙表示方法:每個詞為一個高維向量,僅對應位置為 1,其餘為 0。

重點/應用

  • 優點:保留類別完整資訊,不引入順序誤解。
  • 限制:類別數量多(高基數 High Cardinality)時會大幅增加特徵維度,造成記憶體消耗與模型訓練延遲(維度爆炸)。
  • 高基數類別替代方案:Target Encoding(用類別在目標變數上的統計量取代)。

記憶技巧

「每個類別各佔一格,格子裡打勾(1)或不打勾(0)」。

易混淆

  • vs Label Encoding:One-hot 適用無序類別,Label Encoding 適用有序類別。
  • vs Word2Vec:在 NLP 情境中,One-hot 是非分布式表示(詞彼此無關、向量稀疏),Word2Vec 是分布式表示(語意相近詞彼此接近)。

NLP 中的應用(中級科目一 CH3.1 補充)

語料庫 ["dog","cat","fish"] 中:dog→[1,0,0]、cat→[0,1,0]、fish→[0,0,1]。屬於 NLP 詞彙向量化光譜中「純離散表示」的一員,向量稀疏、無語意、維度隨詞彙表增大而暴增——與表格資料中的高基數問題本質相同(類別/詞彙數越多,維度越爆炸)。

📖 課文原文

「One-hot Encoding(獨熱編碼)⋯限制:類別數量多(High Cardinality)時會大幅增加特徵維度,造成記憶體消耗與模型訓練延遲。」 (CH3.1)「它將每個詞彙表示為一個高維度向量,在這個向量中,只有與該詞對應的位置為 1,其餘位置為 0。」