類別加權 是什麼?
Class Weighting:類別加權 的完整解釋
在分類模型訓練時對不同類別樣本賦予不同損失權重的技術,用於緩解資料類別不平衡問題,使模型更重視少數類別。
Class Weighting(類別加權)是機器學習實務中面對資料不平衡問題的核心解法之一,在醫療診斷、詐騙偵測、異常偵測、自然語言處理中的罕見實體辨識等場景中廣泛應用。
問題根源:類別不平衡
真實世界的資料集往往存在嚴重的類別不平衡,多數類別樣本數可能是少數類別的數十倍甚至數千倍。以信用卡詐騙偵測為例,詐騙交易可能只佔所有交易的 0.1%;以醫療影像中的腫瘤偵測為例,陰性(健康)樣本遠多於陽性(腫瘤)樣本。若直接使用這類不平衡資料訓練分類器,模型很快學到「永遠預測多數類別」的捷徑策略,在整體準確率(Accuracy)上表現不錯,但少數類別的召回率(Recall)可能趨近於零,對業務毫無價值。
類別加權的運作機制
類別加權透過修改損失函數(Loss Function)來解決上述問題。在標準交叉熵損失中,每個樣本的貢獻是均等的;加入類別權重後,少數類別的每個樣本在反向傳播時產生更大的梯度貢獻,迫使模型更認真學習少數類別的特徵。常見的權重計算方式有兩種。一是反頻率加權(Inverse Frequency Weighting):類別 k 的權重 = 總樣本數 / (類別數 × 類別 k 樣本數),數量最少的類別獲得最高權重。二是手動設定:根據業務需求主觀設定權重,例如將詐騙交易的誤分類懲罰設為正常交易的 10 倍,反映詐騙漏報(False Negative)的業務損失遠大於誤報(False Positive)的客戶服務成本。
實作方式
在主流深度學習框架中,類別加權的實作都相當直接。在 scikit-learn 中,大多數分類器(如 LogisticRegression、RandomForestClassifier、SVM)都有 class_weight 參數,設為 'balanced' 即可自動根據各類別頻率計算反頻率權重,或傳入自訂字典指定每個類別的權重值。在 PyTorch 中,使用 torch.nn.CrossEntropyLoss(weight=class_weights_tensor) 傳入類別權重張量。在 TensorFlow/Keras 中,可在 model.fit() 的 class_weight 參數中傳入字典。值得注意的是,類別加權作用於損失函數計算,不改變原始資料集,因此不會增加資料儲存量也不影響批次組成。
類別加權 vs. 重採樣方法
類別加權並非處理類別不平衡的唯一方法,另一類常見方法是重採樣(Resampling)。過採樣(Oversampling)透過複製少數類別樣本或生成合成樣本(如 SMOTE 演算法)來增加少數類別的比例;欠採樣(Undersampling)則刪除部分多數類別樣本以平衡比例。類別加權相比重採樣的優勢在於:不改變資料集本身、不增加訓練時間(過採樣會增加資料量)、也不丟失資訊(欠採樣會捨棄多數類別樣本)。劣勢是對非常極端的不平衡比(如 1:10000)效果可能不如 SMOTE 等合成方法,因為模型仍然很少接觸到少數類別樣本的多樣性。
在 iPAS 考試中的考點
在 iPAS AI 應用規劃師初級與中級考試中,Class Weighting 是分類任務資料前處理章節的常考知識點。考生需要能識別:當 F1-score 或 Recall 顯著低於 Precision 時,可能存在類別不平衡問題;class_weight='balanced' 是處理不平衡分類資料的快速解法;以及理解類別加權、過採樣與欠採樣三種方法的適用場景與取捨。
評估指標的選擇
使用類別加權後,評估模型不應再單純看 Accuracy,因為 Accuracy 受多數類別主導,無法反映少數類別的辨識能力。應改為關注 Precision(精確率)、Recall(召回率)、F1-Score 及 AUC-ROC 曲線。在業務上,通常需要根據 FP(誤報)與 FN(漏報)的代價比例調整分類閾值(Threshold),而非直接使用預設的 0.5 閾值。在詐騙偵測場景中,漏報的代價(損失金額)遠高於誤報(客服成本),因此可能將閾值調低至 0.3,以提高 Recall 換取較高的 FP 率。
進階應用:Focal Loss
Focal Loss 是 Class Weighting 概念的進階版本,由 Facebook AI Research 於 2017 年在目標偵測論文中提出。Focal Loss 在交叉熵損失的基礎上加入調制因子 (1-p_t)^γ,讓已被模型輕鬆分類的樣本(高置信度正確預測)產生更小的損失貢獻,而讓困難樣本(低置信度或容易混淆的樣本)獲得更高的關注。這個設計解決了標準 Class Weighting 無法區分「容易的少數類別樣本」與「困難的少數類別樣本」的限制,在極端不平衡的目標偵測任務(如物件偵測中背景 anchor 數量遠多於物件 anchor)中表現尤為出色。