類別不平衡問題的解決方法 過取樣 欠取樣和再平衡

2021-09-10 09:52:18 字數 1847 閱讀 4902

類別不平衡問題:指的是在分類任務中不同類別的訓練樣本數目差異很大的問題。

我們簡單舉乙個例子:如果我們要判斷一名大學生究竟是研究生還是本科生,我們已知在大學中本科生的數量會遠遠高於研究生的數量,我們假設本科生與研究生比例為9:1。此時,我們只需要將所有學生都判斷成是本科生,這樣我們的模型就有90%的正確率。但是這樣的模型是沒有意義的,因為它不可以識別研究生。

所以,各種分類學習的方法都有乙個基本的假設:不同類別的訓練樣例數目相當,或者差異不大。

但是,當這一假設不成立的時候,我們的分類學習方法可能不會得到良好的結果。為了解決這一問題,現在大體上有三種方法。不失一般性,我們認為正例的樣本數量遠高於反例。

欠取樣(亦稱為下取樣)的思想很簡單:對訓練集中的正例進行欠取樣,即去除一些正例,使得正例和反例的數目相當,在進行學習。

欠取樣法的優勢在於,它縮小了樣本數目,時間成本將會縮小;但是,也就是因為其縮小了樣本數量,模型的準確率可能得不到保證,並且隨機刪除樣例也會造成資訊的丟失。

目前比較好的方法是將欠取樣應用到整合學習中,即對正例進行多次欠取樣,之後配以反例,從而形成多組正例/反例資料集,供多個學習器使用。這樣看來,每個學習器都採用了欠取樣,但是在全域性看來不會丟失重要資訊。

過取樣(亦稱為上取樣)的思想也很簡單:對訓練集中的反例進行過取樣,即增加一些反例使得正例和反例的數目相同,之後在進行學習。

過取樣的方法增加了資料量,同時也增加了學習的時間成本。需要注意的是:過取樣不能簡單的從反例中隨機抽取樣本,因為這樣會導致嚴重的過擬合問題。

目前比較好的解決方法是通過對反例的插值來產生額外的反例,進而將正例和反例的數量調整至大致相當。

我們分類器的工作原理是**出y

yy值,y

yy表達的是正例的可能性。然後將y

yy與乙個閾值進行比較,通常都是與0.5進行比較,若y

>

0.5y>0.5

y>0.

5時判為正例,否則為反例。

上式也可寫為:若y1−

y>

1\dfrac > 1

1−yy

​>

1,則**為正例 …①

y 1−

y\dfrac

1−yy

​表達的是正例可能性和反例可能性的比值,閾值0.5表明分類器認為正例反例可能性相同。

所以,當我們樣本集中的正例和反例數量相差較大的時候,令m

+m^+

m+表示正例數量,令m

−m^-

m−表示反例數量,此時我們只要將分類器的決策規則稍微修改即可:

若 y1

−y

>m+

m−,則

預測為正

例若\dfrac > \dfrac,則**為正例

若1−yy​

>m−

m+​,

則**為

正例⇒

\rightarrow⇒若y

1−y×

m−m+

>1,

則預測為

正例

若\dfrac \times \dfrac>1 ,則**為正例

若1−yy​

×m+m

−​>1,

則**為

正例但是,我們的分類器是基於①式的形式進行決策的,所以我們對其進行調整:

若y ′1

−y

′>

1\dfrac > 1

1−y′y′

​>

1,則**為正例,其中y′=

m−ym

+−m+

y+m−

yy' = \dfrac

y′=m+−

m+y+

m−ym−y​

對類別不平衡問題的解決方法

類別不平衡 分類任務中不同類別的訓練樣例數目差別很大,會對學習過程造成困擾。假定正類樣例少,反類樣例多。一 再縮放 在logstic回歸分類模型中,輸出的y值實際上與乙個閾值進行比較,當y 0.5時,判斷為正例,否則為反例。由於y 0,所以y實際上表示的是 結果為正例的可能性。1.當正反例個數相同時...

類別不平衡問題

詳解類別不平衡問題 盧總 類別不平衡問題的方法彙總 為少數類生成新樣本 smote borderline smote adasyn 整合方法 演算法層面 focal loss 損失函式的權重調整 閾值移動 評價指標 非均衡資料處理 如何學習?隨機降取樣 bagging是萬金油。屬於bagging 假...

關於類別不平衡(理解與解決方法)

類別不平衡 class imbalance 指分類任務中不同類別的訓練樣例數目差別很大的情況。解決方式 再縮放 改變分類決策規則 舉個例子,在二分類中如果在類別平衡的情況下,假設 為1的概率為p,則 為0的概率為1 p,則 p1 p 1 1 1 pp 1時,類別為1,否則類別為0。若類別不平衡呢,假...