18/100 處理不平衡資料 ⚖ 避免 AI 偏心,讓少數類別也能被正確預測!

更新於 發佈於 閱讀時間約 9 分鐘

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


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


18. 處理不平衡資料 ⚖ 避免 AI 偏心,讓少數類別也能被正確預測!


避免 AI 偏心,讓少數類別也能被正確預測!

________________________________________


1️⃣ 什麼是不平衡資料?


在機器學習分類問題中,如果某一類別的數據量遠大於其他類別,模型可能會過度偏向多數類別,導致少數類別預測不準確。


📊 例子

類別 數量

🟢 類別 0(正常交易) 9500 筆

🔴 類別 1(詐欺交易) 500 筆


在這種情況下,模型可能只要永遠預測「正常交易」,就能有 95% 的準確率,但這樣完全無法偵測詐欺交易,這就是不平衡資料(Imbalanced Data) 的問題。

________________________________________


2️⃣ 如何判斷數據是否不平衡?


✅ (1) 觀察類別比例

可以用 value_counts() 來查看各類別的分布:


python


import pandas as pd


# 假設 y 是標籤(target)

y = pd.Series([0] * 9500 + [1] * 500)


# 計算類別比例

print(y.value_counts(normalize=True))

📌 如果某個類別佔比超過 90%,就可能是不平衡數據!


✅ (2) 繪製柱狀圖


python


import matplotlib.pyplot as plt


y.value_counts().plot(kind="bar")

plt.xlabel("類別")

plt.ylabel("數量")

plt.title("類別分布")

plt.show()

📌 可視化類別分布,確認是否有不均衡問題。

________________________________________


3️⃣ 處理不平衡資料的方法


解決不平衡數據的策略主要分為 兩大類:


1. 調整數據(Resampling)

2. 調整模型(Algorithmic Techniques)

________________________________________


📌 方法 1:調整數據(Resampling)


這些方法透過 增加少數類別數據(過採樣) 或 減少多數類別數據(欠採樣) 來平衡類別。


✅ (1) 過採樣(Oversampling) – 增加少數類別數據


讓少數類別的數據數量增加,使其與多數類別的比例更接近。


📌 方法

隨機過採樣(Random Oversampling)

SMOTE(Synthetic Minority Over-sampling Technique)(常見)


python


from imblearn.over_sampling import SMOTE


X_resampled, y_resampled = SMOTE().fit_resample(X, y)


print("原始數據分布:")

print(y.value_counts())

print("過採樣後的數據分布:")

print(pd.Series(y_resampled).value_counts())


📌 效果

讓少數類別的數據量增加,使模型更能學習到其特徵。

SMOTE 透過 KNN 方法生成新的合成樣本,而不是簡單複製現有數據。

________________________________________


✅ (2) 欠採樣(Undersampling) – 減少多數類別數據


隨機移除多數類別的數據,使其與少數類別的比例更接近。


📌 方法

隨機欠採樣(Random Undersampling)

Tomek Links(移除容易混淆的樣本)


python


from imblearn.under_sampling import RandomUnderSampler


X_resampled, y_resampled = RandomUnderSampler().fit_resample(X, y)


print("欠採樣後的數據分布:")

print(pd.Series(y_resampled).value_counts())


📌 效果

讓數據更加均衡,但可能會丟失部分有價值的數據。

適合數據量很大的情況,否則可能會導致訓練數據不足。

________________________________________


📌 方法 2:調整模型(Algorithmic Techniques)


如果不想調整數據,也可以透過調整機器學習模型來解決不平衡問題。


✅ (3) 權重調整(Class Weights)


在訓練時,給少數類別較高的權重,讓模型更關注這些類別。


📌 使用方式

python


from sklearn.ensemble import RandomForestClassifier


# 設定 class_weight="balanced",自動調整權重

model = RandomForestClassifier(class_weight="balanced")

model.fit(X_train, y_train)


📌 適合場景

不想修改原始數據,但希望模型對少數類別更敏感。

________________________________________


✅ (4) 調整評估指標


如果類別不平衡,準確率(Accuracy)容易誤導,我們應該使用:

精確率(Precision):被預測為「正類」的樣本中,真正正確的比例。

召回率(Recall):實際的「正類」中,被成功預測出來的比例。

F1-Score:精確率和召回率的加權平均數。

AUC-ROC 曲線:衡量分類模型在不同閾值下的區分能力。


python


from sklearn.metrics import classification_report


y_pred = model.predict(X_test)

print(classification_report(y_test, y_pred))


📌 適合場景

不想改變數據,但希望更準確地評估模型效能。

________________________________________


4️⃣ 各方法的比較


方法 適用場景 優點 缺點


當面對類別不平衡問題時,可以考慮多種策略:若數據量較少,採用過採樣(如 SMOTE)能有效增加少數類別樣本,提升召回率但需注意可能引入噪音;數據量較大時,欠採樣有助於降低計算成本,但要留意可能損失有價值的數據;若不希望改變數據集本身,調整類別權重(class_weight)是一種簡單且有效的方法,但需模型本身支援;此外,調整評估指標則能避免被準確率誤導,幫助更準確地評估模型效果,然而僅影響評估層面,無法直接改善模型性能。

________________________________________


🎯 結論


📌 不平衡數據會導致 AI 偏心,需要適當處理!

📌 最好的方法通常是「數據處理」+「模型調整」的組合!

📌 請務必使用 Precision / Recall / F1-Score 來評估,而不是僅看準確率!


🚀 推薦策略


1️⃣ 中小數據集 → 使用 SMOTE(過採樣)+ 權重調整

2️⃣ 大型數據集 → 欠採樣 + class_weight="balanced"

3️⃣ 時間有限 → 直接調整 class_weight


這樣,你的 AI 就能公平對待所有類別,避免偏心! 🎯


留言
avatar-img
留言分享你的想法!
avatar-img
Hansen W的沙龍
0會員
83內容數
AIHANS沙龍是一個結合AI技術實戰、產業策略與自我成長的知識平台,主題涵蓋機器學習、生成式AI、創業經驗、財務規劃及哲學思辨。這裡不只提供系統化學習資源與實作案例,更強調理性思維與行動力的結合。無論你是AI初學者、創業者,還是追求人生升維的行者,都能在這裡找到前進的方向與志同道合的夥伴。
Hansen W的沙龍的其他內容
2025/05/26
模型準確不代表真正聰明!訓練集、測試集合理拆分,是驗證泛化能力的關鍵。學習本單元,你將掌握隨機分割、時間序列留出、交叉驗證等技巧,避免「記答案」陷阱,確保模型在未知資料也能穩健表現。從理論到 sklearn 實作,一次搞懂資料切分黃金比例與常見誤區,為後續調參與部署奠定紮實基礎,推薦必讀!
Thumbnail
2025/05/26
模型準確不代表真正聰明!訓練集、測試集合理拆分,是驗證泛化能力的關鍵。學習本單元,你將掌握隨機分割、時間序列留出、交叉驗證等技巧,避免「記答案」陷阱,確保模型在未知資料也能穩健表現。從理論到 sklearn 實作,一次搞懂資料切分黃金比例與常見誤區,為後續調參與部署奠定紮實基礎,推薦必讀!
Thumbnail
2025/05/26
想讓模型更快更準?PCA 是入門降維首選!本單元手把手示範數據標準化、解釋方差分析、視覺化技巧,搭配 Python 實作範例,教你在保持資訊量的同時大幅減少維度,解決高維詛咒與共線性。無論是基因序列、影像特徵還是金融指標,學完即可立即應用,提升演算法效率與洞察力,絕對值得收藏!
Thumbnail
2025/05/26
想讓模型更快更準?PCA 是入門降維首選!本單元手把手示範數據標準化、解釋方差分析、視覺化技巧,搭配 Python 實作範例,教你在保持資訊量的同時大幅減少維度,解決高維詛咒與共線性。無論是基因序列、影像特徵還是金融指標,學完即可立即應用,提升演算法效率與洞察力,絕對值得收藏!
Thumbnail
2025/05/26
在 AI 時代中,資料品質往往比模型更關鍵!本單元「特徵選擇技術」深入淺出介紹如何挑選最具代表性的特徵,讓模型表現大幅提升。透過統計方法、資訊理論與模型導向等策略,不僅能提升訓練效率,還能減少過擬合與運算資源浪費。適合想強化資料處理實力的學習者,是建立高效智慧模型的關鍵一課!
Thumbnail
2025/05/26
在 AI 時代中,資料品質往往比模型更關鍵!本單元「特徵選擇技術」深入淺出介紹如何挑選最具代表性的特徵,讓模型表現大幅提升。透過統計方法、資訊理論與模型導向等策略,不僅能提升訓練效率,還能減少過擬合與運算資源浪費。適合想強化資料處理實力的學習者,是建立高效智慧模型的關鍵一課!
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
當你邊吃粽子邊看龍舟競賽直播的時候,可能會順道悼念一下2300多年前投江的屈原。但你知道端午節及其活動原先都與屈原毫無關係嗎?這是怎麼回事呢? 本文深入探討端午節設立初衷、粽子、龍舟競渡與屈原自沉四者。看完這篇文章,你就會對端午、粽子、龍舟和屈原的四角關係有新的認識喔。那就讓我們一起解開謎團吧!
Thumbnail
當你邊吃粽子邊看龍舟競賽直播的時候,可能會順道悼念一下2300多年前投江的屈原。但你知道端午節及其活動原先都與屈原毫無關係嗎?這是怎麼回事呢? 本文深入探討端午節設立初衷、粽子、龍舟競渡與屈原自沉四者。看完這篇文章,你就會對端午、粽子、龍舟和屈原的四角關係有新的認識喔。那就讓我們一起解開謎團吧!
Thumbnail
本文介紹了人工智慧(AI)及機器學習(ML)的基本概念和關係,探討了數據在機器學習中的重要性,以及深度學習和生成式人工智慧的應用。
Thumbnail
本文介紹了人工智慧(AI)及機器學習(ML)的基本概念和關係,探討了數據在機器學習中的重要性,以及深度學習和生成式人工智慧的應用。
Thumbnail
數據分析與解讀 隨著數據的爆炸式增長,能夠分析、解讀和應用數據的能力變得至關重要。這包括熟悉數據分析工具和技術,如統計學、數據挖掘、機器學習等。然而,僅靠短時間的數據分析並不足以提供深入見解。 要熟悉數據分析工具和技術,如統計學、數據挖掘和機器學習,可以從以下幾個方面入手: 基礎知識的學習
Thumbnail
數據分析與解讀 隨著數據的爆炸式增長,能夠分析、解讀和應用數據的能力變得至關重要。這包括熟悉數據分析工具和技術,如統計學、數據挖掘、機器學習等。然而,僅靠短時間的數據分析並不足以提供深入見解。 要熟悉數據分析工具和技術,如統計學、數據挖掘和機器學習,可以從以下幾個方面入手: 基礎知識的學習
Thumbnail
本文要探討AI的任務與實戰場景。AI技術已深入生活各層面,從違約預測到都市交通管理。AI任務主要有三類:數值型資料處理、自然語言處理(NLP)和電腦影像辨識。時間序列資料和強化學習方法(如AlphaGo)也引起廣泛關注。AI演算法和方法因應不同學派和技術發展而多樣化,了解這些基礎有助選擇適合研究方向
Thumbnail
本文要探討AI的任務與實戰場景。AI技術已深入生活各層面,從違約預測到都市交通管理。AI任務主要有三類:數值型資料處理、自然語言處理(NLP)和電腦影像辨識。時間序列資料和強化學習方法(如AlphaGo)也引起廣泛關注。AI演算法和方法因應不同學派和技術發展而多樣化,了解這些基礎有助選擇適合研究方向
Thumbnail
使用AI所產出的資訊,必須審慎判讀取捨,不宜照單全收。
Thumbnail
使用AI所產出的資訊,必須審慎判讀取捨,不宜照單全收。
Thumbnail
最新的AI趨勢讓人眼花撩亂,不知要如何開始學習?本文介紹了作者對AI的使用和體驗,以及各類AI工具以及推薦的選擇。最後強調了AI是一個很好用的工具,可以幫助人們節省時間並提高效率。鼓勵人們保持好奇心,不停止學習,並提出了對健康生活和開心生活的祝福。
Thumbnail
最新的AI趨勢讓人眼花撩亂,不知要如何開始學習?本文介紹了作者對AI的使用和體驗,以及各類AI工具以及推薦的選擇。最後強調了AI是一個很好用的工具,可以幫助人們節省時間並提高效率。鼓勵人們保持好奇心,不停止學習,並提出了對健康生活和開心生活的祝福。
Thumbnail
AI與人類分工:預測與判斷的智慧結合
Thumbnail
AI與人類分工:預測與判斷的智慧結合
Thumbnail
近年來,生成式AI對市場帶來了巨大變革,然而,企業的AI專案卻面臨許多部署和失敗的問題。從MIT Sloan Management Review的研究中,我們發現數據科學家在尋找防止AI模型失敗的模式上面存在許多問題。本文提供了三個觀點,協助缺乏技術的高階主管針對辨識有效的AI模型和數據集提出方法。
Thumbnail
近年來,生成式AI對市場帶來了巨大變革,然而,企業的AI專案卻面臨許多部署和失敗的問題。從MIT Sloan Management Review的研究中,我們發現數據科學家在尋找防止AI模型失敗的模式上面存在許多問題。本文提供了三個觀點,協助缺乏技術的高階主管針對辨識有效的AI模型和數據集提出方法。
Thumbnail
今天說的是一種稱為「自動化偏誤」(automation bias)的認知偏誤。人們常會不加思索地認為由自動化決策系統,例如現在常用的ChatGPT,會有程式語言賦予的理性與客觀,比較能避免人類常見的各種偏見。
Thumbnail
今天說的是一種稱為「自動化偏誤」(automation bias)的認知偏誤。人們常會不加思索地認為由自動化決策系統,例如現在常用的ChatGPT,會有程式語言賦予的理性與客觀,比較能避免人類常見的各種偏見。
Thumbnail
延續上週提到的,「有哪些不訓練模型的情況下,能夠強化語言模型的能力」,這堂課接續介紹其中第 3、4 個方法
Thumbnail
延續上週提到的,「有哪些不訓練模型的情況下,能夠強化語言模型的能力」,這堂課接續介紹其中第 3、4 個方法
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News