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

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

英文
One-hot Encoding
主題標籤
資料處理、特徵工程
考點定位
非 iPAS 核心術語
最後更新
2026/07/29
獨熱編碼(One-hot Encoding)是什麼? 資料處理特徵工程
術語快查

搜尋意圖: 如果你在找「獨熱編碼 是什麼」或「獨熱編碼 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。

TL;DR: 獨熱編碼是一種將類別資料轉換為二元向量的方法,為每個類別建立獨立欄位,存在時標記為 1,其餘為 0

實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。

下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。

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

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

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

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

容易混淆

獨熱編碼 vs 標籤編碼

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

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

獨熱編碼 vs 標籤編碼

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

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

記住這句就好

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

實際案例

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

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

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

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

算法與應用

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

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

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

怎麼做,以及維度會變多少

獨熱編碼把一個類別欄位展開成多個 0 與 1 的欄位,每一列只有一個位置是 1。

原始資料一欄「顏色」,有三種值:

原始值 顏色_紅 顏色_綠 顏色_藍
1 0 0
0 1 0
0 0 1

一欄變三欄。規則很簡單:新增欄位數 = 該欄位的相異值個數

這條規則就是它最大的限制。郵遞區號有幾千個值、商品編號有幾十萬個值,直接做獨熱編碼會產生一個極度稀疏的高維矩陣,記憶體吃不消,模型也學不動。

什麼時候該用,什麼時候不該用

該用:類別數少,而且類別之間沒有大小順序。 顏色、性別、國家、支付方式都是典型例子。這時獨熱編碼是正確做法,因為它不會憑空製造出「紅 < 綠 < 藍」這種不存在的順序關係。

不該用,改用標籤編碼(label encoding):類別本身有順序。 例如「小、中、大」「國小、國中、高中、大學」,直接編成 1、2、3、4 反而保留了有意義的資訊。

不該用,改用嵌入(embedding):類別數很多。 使用者 ID、商品 ID、詞彙表都屬於這一類。嵌入把每個類別對到一個低維稠密向量,維度可控,而且相似的類別會學到相近的向量,這是獨熱編碼做不到的(獨熱向量之間的距離永遠相同)。

一個容易踩的坑:虛擬變數陷阱(dummy variable trap)。 三種顏色其實只需要兩欄就能表達,因為兩欄都是 0 就代表第三種。全部展開會讓欄位之間完全共線,線性回歸會解不出唯一解。所以做線性模型時通常會丟掉一欄(drop_first),但樹模型與神經網路不受影響,不用丟。

情境判斷

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

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

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

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

常見問題

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

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

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

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

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

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