🔑 名詞卡
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。」