Feature Hashing(特徵哈希)又稱為哈希技巧(Hashing Trick),是一種用於將大量、尤其是類別型或文本特徵快速且節省記憶體地轉換為固定長度數值向量的方法。
Feature Hashing的原理:
• 對每個特徵名稱或特徵值應用哈希函數,將其映射為一個固定維度向量中的索引位置。• 在得到的索引位置上對向量值進行累加(可用+1或+/-1進行碰撞抵消)。
• 這樣避免了維護完整的大字典,節省記憶體,且能處理非常大且稀疏的特徵空間。
• 缺點是會發生哈希碰撞,不同特徵可能映射到相同索引,但通常碰撞對性能影響有限。
Feature Hashing的應用:
• 常用於自然語言處理(NLP)的文字特徵向量化。
• 大規模數據流或在線學習,因為無需維護全字典。
• 也用於多任務學習、稀疏矩陣壓縮、深度學習的嵌入向量初始化等。
優點
• 快速且節省記憶體。
• 無需手動管理詞彙表或特徵字典。
• 適合大規模和動態特徵空間。
簡單比喻:
Feature Hashing就像用定長的信箱收信,所有郵件(特徵)按地址(哈希)被放到固定數量的信箱中,部分不同信件可能放在同一信箱(碰撞),但整體有效管理郵件。
總結:
Feature Hashing是一種利用哈希函數將大規模、高維類別或文本特徵映射成固定長度數值向量的技巧,實現快速、節省記憶體並適用於大數據場景。