資料不平衡問題

2021-08-07 10:40:49 字數 2043 閱讀 3627

資料不平衡問題實際上指的就是y的分布相差很大的問題,又稱為類別不平衡問題。出現這種問題的原因是在實際取樣中,有可能會出現一類的y數量遠遠大於另一類的例子。

乙個很明顯的例子就是在做信用卡還款**的時候,一定是按時還款的人佔據絕大多數,不按時還款的人佔一小部分,那如果機器無腦**新客戶一定會還款,正確率是很高的,但是這樣的**顯然不是我們想要的。那麼如何解決這種型別的問題呢?不僅從樣本取樣的方式要變,最終模型評價的方式也有可能有所不同:

欠取樣(undersampling),顧名思義,就是將數量大的那乙個類別做一些刪除的操作,使得樣本數多的類別來迎合樣本數少的那一類。具體方法有以下幾種:

隨機欠取樣

我們可以隨機地刪除樣本數多的那一類中的資料,但是這樣就顯得很不專業了,因為很明顯,我們不知道我們刪除的那些例子是不是一些很重要的例子,要是真的隨機刪除它們的話,模型的效果就可想而知了。於是就有了一些改進的演算法。

easyensamble演算法

具體思路為:

1. 從樣本多的類別中抽取和樣本少的類別一樣的樣本數;

2. 不重複地從樣本多的類別中取多次,並和樣本少的類別一起組成一對對的訓練集的組合;

3. 針對每個組合進行模型訓練,這樣能使多樣本類別的所有資料都有機會參與建模;

4. 將得到的分類器做模型的整合或者融合。

balancecascade演算法

先通過一次隨機的欠取樣產生乙個基分類器;

放棄分類器正確的樣本,從總樣本中繼續抽取新樣本資料進入訓練資料;

繼續進行訓練並重複。

*這種方式的思路其實就是增加分類錯誤樣本的權重,和adaboost的思路十分相似

既然有樣本數多的類別來迎合樣本數少的類別,那麼就一定有相反的方法,我們稱之為過取樣(oversampling)。其目的是增加少樣本類別的資料而達到平衡的狀態。

簡單的複製貼上

這種方法是不可能被採用的,因為這種簡單複製的方法會導致過擬合的發生。我們必須尋找其他的演算法來解決這個問題。

smote

總體思路是利用少樣本類別在其特徵空間有相似性,那麼我們就可以在其周圍合成新的樣本資料。

1. 針對少樣本類別的每乙個樣本,找到其k個近鄰,這裡的k值由人工確定;

2. k近鄰的個數由兩種樣本的差別而定;

3. 計算少樣本和其近鄰在特徵空間中的差值,然後將這個差值乘以乙個(0,1)之間的隨機數後,與當前樣本特徵值相加,作為新的合成樣本。

*最後一步的數學表示式為:xn

ew=x

+ran

dom(

0,1)

(x^−

x)當然smote演算法也有其自身的問題,乙個是會有同類之間資料重疊的情況出現,因為樣本資料空間本來就很小,在這些狹小的空間另外生成新的資料點的話很難避免資料重疊;另乙個是生成的一些新的合成樣本有可能不包含任何有用的資訊。於是針對這些情況,還有下面的改進演算法:

borderline-smote

borderline-smote演算法相比smote演算法就是多了乙個邊界確認的步驟,針對smote資料重疊的情況,borderline-smote演算法對需要拓展的少數類樣本進行了篩選,篩選條件就是是否是處於多數類樣本和少數類樣本空間的邊界上(borderline)。

具體步驟為:

1. 計算少數類樣本中每乙個樣本的在整個訓練集中和其他所有樣本的距離,並獲得其k個近鄰;

2. 對其k近鄰進行歸類,確定其是否處於邊界(通過k中兩種樣本的個數多少來確定);

3. 對確定為邊界的樣本使用smote演算法進行拓展。

這是完全另一套思路,不把原先二分類的問題看作是二分類的問題,把它當做一分類問題(經典如one class svm)或者異常點檢測問題(把少樣本的資料點當做異常點進行識別)。

one class svm

正常的二分類svm主要思想都是確定樣本點是a類還是b類,而一分類主要思路是確定樣本點是a類和不是a類。雖然對某乙個樣本點來說是b類就意味著不是a類,但是對於分類器來說,它並沒有學習b類,只學習了a類。

在資料不平衡的情況下,模型評價的方式也有所不同。

根據最開始舉的例子,正確率是不能夠準確評價模型好壞的。

但是準確率(p)和召回率(r),一起f1值還是可以準確評價的。

資料不平衡分類問題

不平衡分類問題是指訓練樣本數量在類間分布不平衡的模式分類問題。在實際應用中,不平衡問題很常見。有些問題其原始資料的分布就存在不平衡,如通過衛星雷達檢測海面石油油汙 監測信用卡非法交易 發掘基因序列中編碼資訊以及醫學資料分類等。所謂的資料不平衡是指 資料集樣本類別極不均衡。不平衡資料的學習即需要在如此...

類別不平衡問題

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

資料集類別不平衡問題

類別不平衡問題指分類任務中不同類別的訓練樣本數目差別很大的情況。一般來說,不平衡樣本會導致訓練模型側重樣本數目較多的類別,而 輕視 樣本數目較少類別,這樣模型在測試資料上的泛化能力就會受到影響。乙個例子,訓練集中有99個正例樣本,1個負例樣本。在不考慮樣本不平衡的很多情況下,學習演算法會使分類器放棄...