不平衡數(shù)據(jù)的數(shù)據(jù)處理方法
在機器學習中,不平衡數(shù)據(jù)是常見場景。不平衡數(shù)據(jù)一般指正樣本數(shù)量遠遠小于負樣本數(shù)量。如果數(shù)據(jù)不平衡,那么分類器總是預測比例較大的類別,就能使得準確率達到很高的水平。比如正樣本的比例為 1%,負樣本的比例為 99%。這時候分類器不需要經(jīng)過訓練,直接預測所有樣本為負樣本,準確率能夠達到 99%。經(jīng)過訓練的分類器反而可能沒有辦法達到99%。
對于不平衡數(shù)據(jù)的分類,為了解決上述準確率失真的問題,我們要換用 F 值取代準確率作為評價指標。用不平衡數(shù)據(jù)訓練,召回率很低導致 F 值也很低。這時候有兩種不同的方法。***種方法是修改訓練算法,使之能夠適應不平衡數(shù)據(jù)。著名的代價敏感學習就是這種方法。另一種方法是操作數(shù)據(jù),人為改變正負樣本的比率。本文主要介紹數(shù)據(jù)操作方法。
1. 欠抽樣方法
欠抽樣方法是針對多數(shù)的負樣本,減少負樣本的數(shù)量,反而提高整體 F 值。最簡單的欠抽樣方法是隨機地刪掉一些負樣本。欠抽樣的缺點很明顯,就是會丟失負樣本的一些重要信息,不能夠充分利用已有的信息。
2. 過抽樣方法
欠抽樣方法是針對少數(shù)的正樣本,減少正樣本的數(shù)量,從而提高整體 F 值。最簡單的過抽樣方法是簡單地復制一些正樣本。過抽樣的缺點是沒有給正樣本增加任何新的信息。過抽樣方法對 SVM 算法是無效的。因為 SVM 算法是找支持向量,復制正樣本并不能改變數(shù)據(jù)的支持向量。
改進的過抽樣方法則采用加入隨機高斯噪聲或產(chǎn)生新的合成樣本等方法。根據(jù)不同的數(shù)據(jù)類型,我們可以設計很巧妙的過抽樣方法。有 博客 在識別交通信號問題上就提出了一個新穎的方法。交通信號處理識別是輸入交通信號的圖片,輸出交通信號。我們可以通過變換交通信號圖片的角度等方法,生成新的交通信號圖片,如下所示。
3. SMOTE
Synthetic Minority Over-sampling Technique (SMOTE) 算法是一個最有名的過抽樣的改進。SMOTE 是為了解決針對原始過抽樣方法不能給正樣本增加新信息的問題。算法的思想是合成新的少數(shù)類樣本,合成的策略是對每個少數(shù)類樣本a,從它的最近鄰中隨機選一個樣本b,然后在a、b之間的連線上隨機選一點作為新合成的少數(shù)類樣本。
4. 總結
從理論上來說,SMOTE 方法要優(yōu)于過抽樣方法,過抽樣方法要優(yōu)于欠抽樣方法。但是很多工業(yè)界場景,我們反而采用欠抽樣方法。工業(yè)界數(shù)據(jù)量大,即使正樣本占比小,數(shù)據(jù)量也足夠訓練出一個模型。這時候我們采用欠抽樣方法的主要目的是提高模型訓練效率。總之一句話就是,有數(shù)據(jù)任性。。