---
title: "類別權重（Class Weight）"
slug: class-weight
language: zh-TW
source: https://aiterms.tw/learning/what-is-class-weight
updated_at: 2026-07-04
tags: [機器學習, 模型訓練, 資料處理, source:ipas]
ipas_term: true
type: deep-dive
---

# 類別權重 是什麼？

> 類別權重是一種機器學習技術，透過賦予少數類別較高權重來解決資料不平衡問題，提升模型對稀有事件的預測能力。

## 核心概念
類別權重（Class Weight）是機器學習與深度學習領域中，用來處理不平衡資料集（Imbalanced Dataset）的策略之一。在真實世界的分類任務中，資料分布往往不是均勻的。例如，在信用卡交易資料中，正常的交易通常佔了絕大多數，而真正的詐欺交易只佔極小的比例；在醫療影像分析中，罹患特定罕見疾病的患者影像數量也遠遠少於健康者的影像數量。當我們使用這些分布不均的資料來訓練預測模型時，如果直接採用標準的訓練方法，模型往往會傾向於預測多數類別。這是因為預測多數類別能夠輕易地獲得較高的整體準確率。模型可能會學到一個捷徑，單純預測多數類別，就能讓整體損失降到很低。

為了解決這個問題，類別權重的概念應運而生。它的基本精神在於打破所有樣本在損失函數中地位平等的預設。透過人為或演算法自動地賦予不同類別不同的權重，我們可以在模型訓練的過程中，改變模型對不同類別預測錯誤時所受到的懲罰程度。具體而言，我們通常會給予數量較少的類別（少數類別）較高的權重，而給予數量較多的類別（多數類別）較低的權重。這就好像在教室裡，老師對於平時不常發言的學生，給予他們回答問題時較多的分數加成。在機器學習的語境下，這意味著如果模型把一個少數類別的樣本預測錯誤，它將承受巨大的損失值；反之，如果預測錯誤一個多數類別的樣本，損失值則相對較小。這樣的機制強迫模型必須花費更多的運算資源去學習少數類別的特徵，從而改善模型在少數類別上的召回率（Recall）或靈敏度（Sensitivity）。

## 運作原理
類別權重的運作機制主要體現在模型訓練時的損失函數（Loss Function）計算上。在標準的分類任務中，我們經常使用交叉熵損失（Cross-Entropy Loss）。在未加入類別權重的情況下，每個樣本對總損失的貢獻是相等的。也就是說，不論該樣本屬於哪個類別，其預測誤差都會以相同的比例累加到總損失之中。這導致在不平衡資料集裡，多數類別的樣本因為數量龐大，其累積的損失會主導整個梯度下降的方向，使得模型參數更新主要朝向迎合多數類別的方向前進。

當引入類別權重後，損失函數的公式會被修改為加權損失函數。在這個新的公式中，每個樣本的損失會先乘上一個與其真實類別相對應的權重係數，然後才參與總損失的計算。假設類別甲是多數類別，權重設為一；類別乙是少數類別，權重設為十。當模型對一個類別乙的樣本產生預測誤差時，這個誤差會被放大十倍計入總損失。在反向傳播（Backpropagation）過程中，這個放大的損失會產生較大的梯度，促使模型的神經網路權重或決策樹的節點劃分，更積極地進行調整以修正這個針對類別乙的錯誤。

關於這些權重係數的決定方式，常見的策略是採用反比頻率法。這種方法會根據每個類別在訓練集中出現的頻率的倒數來計算權重。數量越少的類別，其頻率的倒數越大，因此被賦予的權重就越高。例如，如果正常樣本有一千個，異常樣本有一百個，那麼異常樣本的權重可能是正常樣本的十倍。在常見的機器學習函式庫中，通常會提供自動計算平衡權重的參數選項。這些演算法會計算每個類別的樣本數與總樣本數的比例，並給出一個能夠平衡各類別影響力的權重陣列。除了基於頻率的反比計算，另一種做法是啟發式設定，或者透過超參數最佳化（Hyperparameter Tuning）的方式。在某些特殊場景下，單純的頻率倒數可能無法達到預期目標，此時工程師會將類別權重視為一組需要調整的參數，透過網格搜尋（Grid Search）或隨機搜尋，搭配交叉驗證，找出能讓特定評估指標最大化的權重組合。

## 實際應用
類別權重廣泛應用於需要處理不平衡資料的領域。在金融產業的信用卡詐欺偵測中，這是一個經典的場景。由於絕大多數的刷卡交易都是合法的，如果不使用類別權重或其他平衡技術，訓練出來的模型很容易把所有交易都判斷為合法。透過給予詐欺類別較高的權重，模型在訓練時一旦錯放一筆詐欺交易，就會產生極大的損失，從而引導模型學會捕捉那些微小但關鍵的詐欺特徵，例如異常的交易時間、地點轉換或消費金額模式。

在醫療健康領域，疾病預測與醫學影像分析也依賴類別權重。以癌症腫瘤的切片影像分類為例，惡性腫瘤的樣本數通常少於良性腫瘤或正常組織的樣本數。在醫學診斷中，漏診的代價高於誤診。為了解決這個問題，資料科學家會在訓練深度學習卷積神經網路時，提高惡性腫瘤類別的權重。這使得網路在萃取特徵時，會對那些疑似惡性的紋理或形狀變得非常敏感。即使這樣會增加將良性組織誤判為惡性的機率，但卻能有效減少真正需要治療的病患被忽略的風險。

製造業的預防性維護（Predictive Maintenance）也是另一個應用。工廠的機台設備在多數時間內都處於正常運轉狀態，發生故障或異常停機的資料點稀少。未能及時預測到設備故障可能會導致生產線停擺。透過收集感測器傳回的震動、溫度、電流等時間序列資料，並建立預測模型，工程師可以設定較高的權重給予即將故障的類別。這樣模型就能更敏銳地捕捉到設備劣化前夕的微弱訊號，提前發出警報，讓維修人員可以在設備真正損壞前進行保養。此外，在自然語言處理領域的毒性評論偵測、網路安全領域的惡意流量分析中，類別權重也是基礎工具之一。

## 常見誤區
儘管類別權重是處理不平衡資料的實用工具，但在實際應用中仍有許多容易陷入的誤區。最常見的第一個誤區是認為調整類別權重可以完全取代資料清理與特徵工程。有些開發者在遇到不平衡資料時，直接套用自動化的類別權重計算，卻沒有深入檢查資料本身的品質。如果少數類別的樣本存在標籤錯誤，或者缺乏足夠的區別性特徵，單純放大權重只會放大雜訊的影響，導致模型產生過度擬合（Overfitting）。模型可能會記住少數類別樣本的特有雜訊，而不是學到真正的通用特徵。因此，在應用類別權重之前，確保資料的正確性並萃取出高品質的特徵，仍然是基礎工作。

另一個常見的誤區是在評估模型效能時，依然依賴整體準確率（Accuracy）。當我們使用了類別權重來訓練模型後，模型對少數類別的預測能力會提升，但同時可能會犧牲部分對多數類別的預測準確率，導致整體準確率下降。如果不了解這一點，可能會誤以為新模型的表現變差了。事實上，在不平衡分類任務中，整體準確率是一個具有誤導性的指標。我們必須改用精確度（Precision）、召回率（Recall）、F1-Score，或是 ROC 曲線下的面積（AUC-ROC）以及 Precision-Recall 曲線下的面積（PR AUC）來進行評估。特別是關注少數類別的召回率，才能真正反映類別權重是否發揮了作用。

第三個誤區是將類別權重與其他抽樣技術盲目疊加使用，而沒有進行系統性的測試。雖然這兩種方法都是為了解決不平衡問題，但它們的作用機制不同。過度抽樣（Oversampling）會增加少數類別的樣本數，而欠抽樣（Undersampling）會減少多數類別的樣本數。如果在已經進行了嚴重過度抽樣的資料上，又額外加上極端的類別權重，等於對少數類別進行了雙重補償。這可能會導致模型對少數類別過於敏感，產生大量的偽陽性預測。雖然在某些情況下結合使用可能會帶來提升，但這需要透過交叉驗證來調整參數，而不是直接將所有方法疊加。正確的做法是先嘗試單一方法，建立基準線，然後再評估疊加方法是否帶來效益。

## 與相關技術的比較
在處理資料不平衡問題時，類別權重經常與資料層面的抽樣技術進行比較。常被提及的是隨機過度抽樣（Random Oversampling）、合成少數類別過度抽樣技術（SMOTE）以及隨機欠抽樣（Random Undersampling）。類別權重屬於演算法層面的解決方案，它不需要修改原始資料集的大小或內容，僅透過調整損失函數來改變學習重點。這使得類別權重在運算效率上通常具有優勢，因為它不會像過度抽樣那樣增加訓練資料量。相對地，SMOTE 等過度抽樣技術會生成新的人工樣本，這在某些特徵空間連續性較好的情況下，能夠幫助模型學到更穩健的決策邊界，但也有可能生成不真實的雜訊樣本。類別權重則沒有生成虛假資料的風險，但如果少數樣本數量太少，它無法憑空創造資訊，模型容易對這極少量的真實樣本產生過度擬合。

另一種常與類別權重相提並論的技術是焦點損失（Focal Loss）。焦點損失可以被視為類別權重概念的一種進階變形。傳統的類別權重是針對類別給予固定的權重，也就是所有屬於少數類別的樣本都會獲得相同的權重放大。然而，焦點損失則是針對樣本的預測難度來動態調整權重。它的核心思想是，對於模型已經可以準確預測的簡單樣本，大幅降低其損失權重；而對於模型難以預測的困難樣本，則保持或相對提高其權重。焦點損失在物件偵測等極端不平衡的情境中具有特殊作用。相較於焦點損失，標準的類別權重設定較為直觀簡單，計算開銷也較小，經常作為初步嘗試的基線方法。

最後，我們還可以將類別權重與異常偵測（Anomaly Detection）演算法進行概念上的對比。當資料的不平衡程度達到極端，例如少數類別的比例極低時，將其視為一個分類問題並使用類別權重可能不再合適。在這種情況下，通常會轉向使用一元分類（One-Class Classification）或非監督式的異常偵測演算法，如隔離森林（Isolation Forest）或單類別支持向量機（One-Class SVM）。異常偵測演算法的思維模式不是去區分兩個類別，而是學習正常樣本的分布輪廓。任何偏離這個正常輪廓的資料點，都會被標記為異常。總結來說，類別權重適用於多數與少數類別都有一定數量且特徵可以被學習的監督式分類情境；而當少數類別稀缺到無法構成有效的學習分布時，則應考慮轉換為異常偵測的思維框架。

## iPAS 考試出題分析

屬於未分類考範圍。

## 常見問題

### 類別權重和抽樣技術（如 SMOTE）應該如何選擇？

在面對不平衡資料集時，選擇類別權重或抽樣技術取決於資料集的規模與特性。如果資料集非常龐大，使用過度抽樣技術可能會導致訓練時間呈指數級增加，此時調整類別權重通常是較有效率的做法，因為它不需要改變訓練資料的實體數量，只需在損失函數的計算中加入乘數即可。另一方面，如果少數類別的樣本數真的極度稀少，模型可能無法單憑加重懲罰來學習到足夠的特徵變異性，這時使用 SMOTE 等合成技術生成新樣本，可能會有助於建立更清晰的決策邊界。實務上，工程師經常會先嘗試類別權重作為基準線，若成效不足，再引入資料層面的抽樣技術進行比較，甚至在某些情況下透過交叉驗證來評估結合兩者的成效。

### 調整類別權重會影響模型的整體準確率（Accuracy）嗎？

調整類別權重通常會對模型的整體準確率產生影響，且在多數不平衡分類的場景中，整體準確率往往會呈現下降的趨勢。這是因為未加權的模型傾向於盲目預測數量佔絕對優勢的多數類別，以此換取極高的表面準確率。當我們賦予少數類別較高的權重時，模型會變得更願意預測少數類別。雖然這會顯著提升少數類別的召回率，捕捉到更多我們真正關心的稀有事件，但不可避免地也會增加將多數類別誤判為少數類別的次數（偽陽性增加）。由於多數類別的基數龐大，些微的誤判率增加都會在總體準確率上造成明顯的拉低。因此，在使用類別權重時，必須放棄將整體準確率作為唯一評估標準，改以 F1-Score 或精確度與召回率的綜合考量為主。

### 在深度學習框架中（如 PyTorch 或 TensorFlow），如何具體實作類別權重？

在主流的深度學習框架中，實作類別權重通常非常直接，主要是透過調整損失函數的參數來完成。以 PyTorch 為例，在進行多類別分類任務並使用交叉熵損失函數時，該函數提供了一個名為 weight 的參數。開發者只需計算好每個類別對應的權重，將其轉換為張量格式，並在實例化損失函數時傳入即可。在訓練迴圈中，框架底層會自動處理加權的損失計算與梯度反向傳播。而在 TensorFlow 或 Keras 中，則經常在呼叫模型的 fit 方法時，透過 class_weight 參數傳入一個字典，字典的鍵為類別標籤，值為對應的權重。框架會在這個訓練階段自動將這些權重應用於批次資料的損失計算中，無需開發者手動修改內部邏輯。

---

深度解說頁：https://aiterms.tw/learning/what-is-class-weight
快查頁：https://aiterms.tw/terms/class-weight
最後更新：2026/07/04