1.數據不平衡概述
1.1 數據不平衡介紹
數據不平衡,又稱樣本比例失衡。對於二分類問題,在正常情況下,正負樣本的比例應該是較為接近的,很多現有的分類模型也正是基於這一假設。但是在某些特定的場景下,正負樣本的比例卻可能相差懸殊,如社交網絡中的大V判斷、電商領域的惡意差評檢測、金融領域的欺詐用戶判斷、風控領域的異常行為檢測、醫療領域的腫瘤診斷等。
1.2 數據不平衡的常見形式及特點
根據數據量的多少和數據不平衡程度,可以將數據不平衡問題分為以幾類:
(1)大數據+輕微數據不平衡(正負樣本數量相差在一個數量級內)
如豆瓣上的電影評分數據分布等,此類問題常見的機器學習模型即可解決,無須額外處理。
(2)小數據 + 輕微數據不平衡(正負樣本數量相差在一個數量級內)
此類問題可以通過加隨機擾動的上采樣方法處理。
(3)大數據 + 中度數據不平衡(正負樣本數量相差在兩個個數量級內)
此類問題可以通過下采樣的方法處理。
(4)小數據 + 中微數據不平衡(正負樣本數量相差在兩個數量級內)
如醫學圖像分析。此類問題可以用數據合成的方法來解決。
(5)大數據 + 重度數據不平衡(正負樣本數量相差超過兩個數量級)
如金融領域的欺詐用戶判斷,風控領域的異常行為檢測。此類問題可以通過一分類(one-class Learning)或離群點異常檢測方法來解決。
(6)小數據 + 重度度數據不平衡(正負樣本數量相差超過兩個數量級)
如醫療領域的腫瘤診斷。此類問題可以通過一分類(one-class Learning)或離群點異常檢測方法來解決。
2.常見的解決辦法
2.1 數據采樣
數據采樣通過對原始數據集進行處理,使各類別數據比例維持在一個合理的比例。可分為上采樣和下采樣。
(1)上采樣。上采樣(Oversampling)是通過把少量數據類別的數據重復復制的方法使各類別數據比例維持在合理的比例,但是基於這樣采樣方法訓練出來的模型容易出現過擬合,可以在每次生成新數據的時候加入輕微隨機擾動。
(2)下采樣。下采樣(Undersampling)是通過從多數數據類中篩選出部分數據使各類別數據比例維持在合理的比例,但是這種采樣方法容易丟失關鍵數據,可以通過多次隨機下采樣來解決。
2.2 數據合成
數據合成是利用已有樣本的特征相似性生成更多新的樣本,主要應用在小數據場景下,如醫學圖像分析。
2.3 加權
加權的方法是通過對不同類別分類錯誤施加不同權重的代價,使得不同類別的加權損失值近似相等。
2.4 一分類
當正負樣本比例嚴重失衡時,靠單純的采樣和數據合成已經並不能很好地解決問題。因為上述方法雖然解決了訓練數據的正負樣本比例問題,但卻嚴重偏離了原始數據的真實分布情況,會導致模型訓練結果並不能真正反映實際的情況,會有很大的偏差。
此時,可以考慮用一分類(One-class Classification)來解決。最常見的一分類方法是One-class SVM,其基本思路如下:利用高斯核函數將樣本空間映射到核空間,在核空間中找到一個能夠包含所有數據的一個球體,當進行判別時,如果測試數據位於這個高維球體之中,則將其歸為多數類,否則就歸為少數類。一分類除了可用來解決數據嚴重不平衡時的分類問題,還可以應用於金融和醫療領域的異常檢測。
總結來說,在樣本數據量較大,且正負樣本比例相差並不懸殊(兩個數量級以內)的情況下,可以考慮使用采樣或加權的方法解決;在正負樣本數據都非常之小時,可以考慮用數據合成的方法解決;在正負樣本數據比例相差懸殊的情況下,可以考慮用一分類的方法解決。