獨熱編碼(One-hot Encoding)是什麼?

獨熱編碼是一種將類別資料轉換為二元向量的方法,為每個類別建立獨立欄位,存在時標記為 1,其餘為 0|本頁含完整原理、應用場景、iPAS 考試重點與 3 個常見問答。

獨熱編碼(One-hot Encoding)是什麼? 資料處理特徵工程

你有沒有把顏色、地區這種類別資料丟進模型後,才發現數字大小被誤會?

你可以把 獨熱編碼 想成 把類別變成模型看得懂的表示。

避免模型把類別大小誤當成順序,沒有順序的類別,就給它們各自一個開關 這件事就特別重要。

你可以把它想成一個把抽象概念拉回日常判斷的提示,先知道它解決什麼問題,再看技術細節。

容易混淆

獨熱編碼 vs 標籤編碼

標籤編碼像給類別編號(紅=0, 綠=1, 藍=2),獨熱編碼像給每個類別一個獨立的二元開關,獨熱編碼避免了模型誤認為數字大小有意義的問題,更適合沒有順序關係的類別。

最關鍵的區別:一個展開成多欄,一個只用單欄編號。

獨熱編碼 vs 標籤編碼

獨熱編碼把每個類別拆成獨立開關,標籤編碼只是給一個編號

最關鍵的區別:有沒有把類別順序偷偷塞進去。

記住這句就好

沒有順序的類別,就給它們各自一個開關

實際案例

案例 1:把水果類別展開成蘋果、香蕉、橘子三個欄位

這種情況下,獨熱編碼 會幫你把原本手工或靠直覺的步驟變得更穩。

案例 2:把城市名稱轉成獨立欄位,讓模型不把台北當成比台中更大

另一個常見場景也能看出 獨熱編碼 的價值,因為它處理的是同一種核心問題。

算法與應用

核心意思就是:沒有順序的類別,就給它們各自一個開關。

類別少時很直觀,類別很多時向量會變得又寬又稀疏

遇到高基數類別時,常會改看 embedding 或其他編碼方式

情境判斷

Q1(直覺題): 把水果類別展開成蘋果、香蕉、橘子三個欄位 這種情況,會先想到 獨熱編碼 嗎?

→ 會,因為它正好在處理這件事的核心問題,只是還要看資料乾不乾淨、流程穩不穩。

Q2(判斷題): 類別數很多時,還適合直接用嗎?

→ 看情況,類別一多維度會爆,常改用 embedding 或其他壓縮表示

常見問題

獨熱編碼後的向量長度是多少?

獨熱編碼後的向量長度等於類別型特徵中不同類別的總數。 例如,如果一個特徵有 5 個不同的類別,那麼經過獨熱編碼後,每個類別都會被轉換成一個長度為 5 的向量。

獨熱編碼會增加模型的複雜度嗎?

是的,獨熱編碼會增加模型的複雜度,特別是在類別數量非常多的情況下。 維度增加會導致計算量增加,並可能導致過擬合。 因此,在使用獨熱編碼時,需要權衡其優缺點。

除了獨熱編碼,還有哪些處理類別型資料的方法?

除了獨熱編碼,還有標籤編碼、順序編碼、詞嵌入和目標編碼等方法。 選擇哪種方法取決於具體的應用場景和資料特性。 例如,詞嵌入通常用於自然語言處理,而目標編碼通常用於推薦系統。