SMOTE 過採樣 是什麼?

SMOTE:SMOTE 過採樣 的完整解釋

SMOTE 是一種處理資料不平衡問題的過採樣技術,透過合成少數類別樣本來平衡資料分佈,提升模型學習效果。

核心概念

SMOTE (Synthetic Minority Over-sampling Technique),即合成少數過採樣技術,是機器學習中處理資料集類別不平衡問題的常用方法。在許多分類任務中,不同類別的樣本數量差異巨大,例如詐欺交易或罕見疾病病例。當模型在這種不平衡資料集上訓練時,往往偏向多數類別,導致對少數類別的識別能力差。

SMOTE 的核心是透過「合成」而非簡單重複現有樣本來擴充少數類別資料集。簡單重複採樣會導致模型過度擬合且不提供新資訊。SMOTE 則透過在現有少數類別樣本的特徵空間中,基於其鄰近樣本生成新的、略有不同的合成樣本。這擴展了少數類別的決策邊界,使模型能學習到更泛化、穩健的少數類別模式,避免過擬合,並提升對少數類別的識別能力和整體分類性能。

運作原理

SMOTE 的運作原理基於 K-近鄰 (K-Nearest Neighbors, KNN) 演算法,主要步驟如下:

  1. 識別少數類別樣本:從資料集中找出所有少數類別樣本。
  2. 選擇基準樣本:對於每個少數類別樣本 x_i,作為基準點。
  3. 尋找 K 個最近鄰居:計算 x_i 與所有其他少數類別樣本的距離(通常為歐幾里得距離),找出其 k 個最近鄰居。k 是重要超參數,通常設為 5 或 10。
  4. 隨機選擇鄰居:從這 k 個最近鄰居中,隨機選擇一個鄰居 x_nn
  5. 合成新樣本:在 x_ix_nn 之間的特徵空間中,沿著連接兩者的直線段,隨機生成一個新樣本 x_new。公式為: x_new = x_i + rand(0, 1) * (x_nn - x_i) 其中 rand(0, 1) 是介於 0 和 1 之間的隨機數。新樣本 x_new 的特徵值是兩者特徵值的線性插值。
  6. 重複步驟:重複步驟 2-5,直到達到預設的過採樣比例。

透過此方式,SMOTE 在少數類別樣本周圍創建人造資料點,這些點基於現有模式的合理擴展,有助於擴大少數類別的決策區域,使分類器更好地捕捉少數類別特徵。

實際應用

SMOTE 在資料不平衡問題突出的多個領域中廣泛應用:

  • 金融詐欺偵測:詐欺交易遠少於正常交易。SMOTE 合成更多詐欺樣本,幫助模型更有效學習詐欺模式,提高偵測準確性和召回率。
  • 醫療疾病診斷:罕見疾病病例資料稀少。SMOTE 平衡醫療資料集,使模型能更好識別和預測罕見疾病,提高診斷敏感性。
  • 工業缺陷檢測:產品缺陷率低。SMOTE 增加缺陷樣本,訓練出更精確的缺陷檢測模型。
  • 網路入侵偵測:惡意入侵行為是少數。SMOTE 幫助模型學習入侵模式,提高對新型攻擊的偵測能力。

SMOTE 的價值在於,它能在不引入過多重複資訊的情況下,有效提升模型對關鍵少數事件的學習能力,改善決策品質。

常見誤區

使用 SMOTE 時需注意以下誤區:

  1. 在資料分割前應用 SMOTE:最常見錯誤。應先將資料分割為訓練集和測試集,然後僅在訓練集上應用 SMOTE,避免資料洩漏和高估模型泛化能力。
  2. 對高維度資料處理不當:高維度特徵空間中,距離度量可能失真(維度災難)。SMOTE 在高維資料上可能效果不佳,合成樣本缺乏代表性或引入噪音。
  3. 不考慮特徵類型:SMOTE 預設所有特徵為數值型。對於類別型特徵,直接應用會產生無意義的浮點數。需使用 SMOTE-NC 或 SMOTE-N 等變體。
  4. 過度採樣導致過擬合:過度採樣(如少數類別數量遠超多數類別)仍可能使模型過度擬合於合成樣本,降低泛化能力。需謹慎選擇過採樣比例。
  5. 將 SMOTE 視為萬靈丹:SMOTE 非唯一或最佳方案。應結合資料品質、特徵工程、模型選擇等綜合考慮。
  6. 引入噪音:若少數類別樣本本身含噪音或離群值,SMOTE 可能放大噪音,生成不具代表性樣本,降低模型性能。

與相關技術的比較

SMOTE 只是處理資料不平衡問題的策略之一:

  1. 與欠採樣 (Undersampling) 的比較

    • 欠採樣:減少多數類別樣本。優點是訓練快,缺點是可能丟失重要資訊。
    • SMOTE:增加少數類別樣本,保留所有多數類別資訊。
    • 選擇:多數類別極龐大時可考慮欠採樣;否則 SMOTE 或兩者結合更優。
  2. 與其他過採樣技術

    • 簡單重複採樣:直接複製,易過擬合。
    • ADASYN:自適應生成,更關注難分類的少數樣本。
    • Borderline-SMOTE:只對決策邊界附近的少數樣本過採樣。
  3. 與成本敏感學習 (Cost-Sensitive Learning)

    • 不改變資料分佈,透過賦予不同錯誤分類不同的成本權重。優點是直接解決業務影響,缺點是需定義成本矩陣。
    • 選擇:成本差異明確時強大,SMOTE 則改善資料分佈,兩者可互補。
  4. 與集成方法 (Ensemble Methods)

    • 如 EasyEnsemble、SMOTEBoost 等,透過訓練多個基學習器並採樣或加權來處理不平衡。
    • 優點:性能更穩健。缺點:模型複雜度高。
    • 選擇:當單一模型不足時,集成方法是進階策略。SMOTE 可作為其前處理。
  5. 與生成模型 (Generative Models)

    • 如 GANs,能生成高度逼真的新樣本。
    • 優點:生成更複雜真實的樣本。缺點:訓練複雜,需大量資源。
    • 選擇:對高真實感和複雜模式需求高時考慮,但複雜性遠超 SMOTE。

SMOTE 是一種相對簡單、高效且廣泛使用的不平衡資料處理技術。在應用時,應結合具體問題、資料複雜性及其他技術,綜合評估選擇最合適策略。

常見問題