vocus logo

方格子 vocus

14/100 類別變數處理(獨熱One-Hot Encoding、標籤Label Encoding) 🔢

更新 發佈閱讀 6 分鐘

AI時代系列(1) 機器學習三部曲: 🔹 第一部:《機器學習 —— AI 智慧的啟航》


14/100 第二週:資料處理與特徵工程


14. 類別變數處理(One-Hot Encoding、Label Encoding) 🔢 把「紅、藍、綠」轉成 0/1,讓機器也能讀懂!


在機器學習和數據分析中,類別變數(Categorical Variables) 通常需要轉換成數值型數據,才能讓演算法理解並進行計算。最常見的類別變數編碼方式有:


1️⃣ One-Hot Encoding (獨熱編碼)


這種方法會為每個類別建立一個獨立的欄位,值為 0 或 1。



🎯 例子:

假設有一個顏色特徵 Color,包含「紅(Red)」、「藍(Blue)」、「綠(Green)」三種顏色,使用 One-Hot Encoding 會變成:


Color Red Blue Green

Red 1 0 0

Blue 0 0 1

Green 0 0 1


📌 優點:

不會產生數值大小的偏差,適合樹模型(如決策樹、隨機森林)。

保持變數的獨立性,不會讓演算法誤以為某個類別比其他類別「大」或「小」。


📌 缺點:

當類別數量過多時,可能會產生「維度爆炸」(大量的 0/1 欄位)。

需要額外的記憶體來儲存新的欄位。


✅ 使用方式:


在 Python 中,可以使用 pandas 或 sklearn.preprocessing 來進行 One-Hot Encoding:


import pandas as pd


# 原始資料

df = pd.DataFrame({'Color': ['Red', 'Blue', 'Green', 'Red', 'Green']})


# 進行 One-Hot Encoding

df_encoded = pd.get_dummies(df, columns=['Color'])


print(df_encoded)

________________________________________


2️⃣ Label Encoding (標籤編碼)


這種方法會將類別轉換為 數字標籤,例如:

Red → 0

Blue → 1

Green → 2


🎯 例子:

Color Encoded

Red 0

Blue 1

Green 2


📌 優點:

節省空間,不會產生維度爆炸的問題。

適合用於類別變數有「順序性」的情況,例如「小、中、大」。


📌 缺點:

可能會引入錯誤的數值關係,例如機器學習模型可能誤認為 Green(2)比 Red(0)大,但實際上顏色之間沒有數值上的大小關係。


✅ 使用方式:


可以使用 sklearn.preprocessing.LabelEncoder 來進行 Label Encoding:


python


from sklearn.preprocessing import LabelEncoder


# 原始資料

df = pd.DataFrame({'Color': ['Red', 'Blue', 'Green', 'Red', 'Green']})


# 進行 Label Encoding

encoder = LabelEncoder()

df['Color_Encoded'] = encoder.fit_transform(df['Color'])


print(df)

________________________________________


3️⃣ 該選擇哪一種?


方法 何時使用

One-Hot Encoding 當類別變數無序,例如顏色、城市、性別

Label Encoding 當類別變數有序,例如「低、中、高」等級


📌 進階技巧:


當類別數量過多時(例如 1000 個城市),可以考慮 Target Encoding 或 Hash Encoding 來減少維度問題。


對於某些神經網絡模型(如 CNN、RNN),可以使用 Embedding 層 來學習類別的關係。


這樣,機器學習模型就能夠正確處理類別數據,提高預測效果!🚀



留言
avatar-img
艾韓思 AIHANS|AI 應用工程筆記
43會員
678內容數
AIHANS沙龍是一個結合AI技術實戰、產業策略與自我成長的知識平台,主題涵蓋機器學習、生成式AI、創業經驗、財務規劃及哲學思辨。這裡不只提供系統化學習資源與實作案例,更強調理性思維與行動力的結合。無論你是AI初學者、創業者,還是追求人生升維的行者,都能在這裡找到前進的方向與志同道合的夥伴。
2025/05/24
當你的數據中「年齡」是兩位數、「收入」卻是五位數,AI 很可能會「誤判誰比較重要」!這一單元將帶你掌握兩大關鍵技巧:標準化與正規化,讓特徵回到同一個比較基準,提升模型的學習穩定性與準確性。無論是 SVM、KNN,還是神經網路,資料縮放都是你不可忽略的關鍵步驟。📏⚖️
Thumbnail
2025/05/24
當你的數據中「年齡」是兩位數、「收入」卻是五位數,AI 很可能會「誤判誰比較重要」!這一單元將帶你掌握兩大關鍵技巧:標準化與正規化,讓特徵回到同一個比較基準,提升模型的學習穩定性與準確性。無論是 SVM、KNN,還是神經網路,資料縮放都是你不可忽略的關鍵步驟。📏⚖️
Thumbnail
2025/05/24
缺失值不補好,模型準確度直接腰斬!本篇手把手示範 dropna、fillna、interpolate 三大招,教你何時刪、何時填、何時插值,還附 Python 範例與選擇指南。學會後,讓你的資料零漏洞、AI 決策更可靠,實戰專案立刻升級!
Thumbnail
2025/05/24
缺失值不補好,模型準確度直接腰斬!本篇手把手示範 dropna、fillna、interpolate 三大招,教你何時刪、何時填、何時插值,還附 Python 範例與選擇指南。學會後,讓你的資料零漏洞、AI 決策更可靠,實戰專案立刻升級!
Thumbnail
2025/05/24
髒數據是 AI 最大敵人!本單元教你用 Pandas 快速搞定缺失值、異常值、格式錯誤與重複資料,循序示範 dropna、fillna、IQR、astype 等技巧,確保資料純淨,模型準確度瞬間飆升。學完立即用乾淨數據武裝你的機器學習專案,讓 AI 更聰明、更可靠!
Thumbnail
2025/05/24
髒數據是 AI 最大敵人!本單元教你用 Pandas 快速搞定缺失值、異常值、格式錯誤與重複資料,循序示範 dropna、fillna、IQR、astype 等技巧,確保資料純淨,模型準確度瞬間飆升。學完立即用乾淨數據武裝你的機器學習專案,讓 AI 更聰明、更可靠!
Thumbnail
看更多