IMBALANCED TARGET DISTRIBUTIONS LEARING(目標類別不平衡學習)

猫七的blog發表於2024-03-17

什麼是目標類別不平衡?

假設你訓練集中資料的目標類別的分佈較為均勻,那麼這樣的資料集所建立的分類模型,通常會有比較好的分類效能。

假設你訓練集中資料的目標類別的分佈不均勻(存在Majority Class和Minority Class的時候),那麼這樣的資料集造成的問題是分類模型通常傾向將所有資料預測為多數類別,而完全忽視少數類別。

解決目標類別不平衡的方法:

減少多數類別的抽樣法:

最近鄰策略(KNN Approach)減少多數類別:

  • NearMiss-1(核心思想:如果與MI比較近的樣本點,模型都可以分開,那麼其他離MI比較遠的點,模型自然可以分開。)

Step1:首先計算每個MA與所有MI的距離,然後每個MA會挑選與它最接近的3個MI,並計算與這3個MI的平均距離。

Step2:假如想降到多數類別:少數類別的比例為1:1,那麼我們可以選取平均距離較小的前4個MA。

  • NearMiss-2:(核心思想:NearMiss-1的條件有些嚴格,可能導致後續分類模型不再能將樣本點分開。NearMiss-2對其做了距離上的改進。)

Step1:首先計算每個MA與所有MI的距離,然後每個MA會挑選與它最遠的3個MI,並計算與這3個MI的平均距離。

Step2:假如想降到多數類別:少數類別的比例為1:1,那麼我們可以選取平均距離較小的前4個MA。

  • NearMiss-3:(核心思想:NearMiss-3試圖將距離最近的MA和MI拆分開。)

Step1:首先計算每個MA與所有MI的距離。

Step2:假如想降到多數類別:少數類別的比例為1:1,那麼我們可以對每個MI挑選1個距離較近的MA;如果想降到2:1,那麼我們可以對每個MI挑選2個距離較近的MA。

最近鄰策略(KNN Approach)減少多數類別的缺點:

1.計算時間過長 計算每個MA與所有MI的距離通常需要花時間。假設正、負樣本數量為3000:900w,那麼相當於要算 900w^3000次,之後算完後還要排序,計算平均距離。

2.分類效果並沒有想象中那麼好

3.方法沒有考慮多數類別的分佈情形 假如資料集有兩個MA,一個MI,那麼雖然我們為每個MI尋找了各自的“MA“,但如果選擇的都是兩個MA中數量較多的MA,那麼分類結果可能並不偏向於較少的MA。

結合聚類解決目標類別不平衡問題

  • Cluster_based Approach:該方法的假設樣本可以分為多個不同的類別,設法從多數類別中抽取出具有代表性的樣本點。

假設原來資料點本身的類別是不平衡的,(MA:1000;MI:100)。

Step_1:對原來的資料點進行聚類,假設我們聚了3類。

Step_2:假設第一個類別中的資料點分佈比例為10:1,第二個類別中的資料點分佈比例為20:1,第三個類別中的資料點分佈比例為5:1

Step_3假設總共要從原來資料點中總共抽取100筆的MA,以期將MA:MI比例降低到1:1。

那麼我們認為,

第一類別要抽100×(10/35),

第二個類別要抽100×(20/35),

第三個類別要抽100×(5/35)。

Cluster_based Approach的缺點

  1. 聚類的方法需要根據特徵來計算距離,不同的特徵(重要、非重要)將直接影響到聚類結果的好壞,進而影響抽樣的效果。
  2. 需抽取的資料數量需要大於該簇的資料總數。

增加少數類別的抽樣法

  • SMOTE:SMOTE的基本假設是:兩個MI直線距離之間的樣本點也可以被認為是MI

Step1:針對每個MI,計算與之最近的K個MI。

Step2:隨機選取某個MI中的資料i,並從與之最近的K個MI中隨機選取一個資料j

Step3:計算資料i和資料j之間的差

Step4:隨機產生一個介於0~1之間的值w

Step5:產生人造資料x+w*p

重複Step2~Step5,直到人造資料滿足需求的個數為止。

重複Step2~Step6,直到所有MI都執行過一次,

SMOTE方法 增加少數類別的缺點:

1.沒有考慮多數類別資料的分佈情形 作者認為少數類別應該分佈在一起,在少數類別資料間產生的資料也必然是少數類別。這種假設存在一定的侷限性,因為多數類別的分佈並沒有被考慮進去。

2.分類效果並沒有想象中那麼好 SMOTE方法帶來的分類效能在一些資料集上並沒有明顯的提升,其分類效能並未明顯優於隨機減少多數類別抽樣法(隨機欠取樣)

相關文章