樣本不平衡往往會導致以下問題:
對比例小的樣本造成過擬合,也就是說預測偏向樣本數較多的分類。這樣就會大大降低模型的范化能力。往往accuracy(准確率)很高,但auc很低。
針對樣本的不平衡問題,有以下幾種常見的解決思路:
- 搜集更多的數據
- 改變評判指標
- 對數據進行采樣
- 合成樣本
- 改變樣本權重
搜集更多的數據
搜集更多的數據,從而讓正負樣本的比例平衡,這種方法往往是最被忽視的方法,然而實際上,當搜集數據的代價不大時,這種方法是最有效的。
但是需要注意,當搜集數據的場景本來產生數據的比例就是不平衡時,這種方法並不能解決數據比例不平衡問題。
改變評判指標
改變評判指標,也就是不用准確率來評判和選擇模型,原因就是我們上面提到的 Accuracy Paradox 問題。實際上有一些評判指標就是專門解決樣本不平衡時的評判問題的,如准確率,召回率,F1值,ROC(AUC),Kappa 等。
根據這篇文章,ROC 曲線具有不隨樣本比例而改變的良好性質,因此能夠在樣本比例不平衡的情況下較好地反映出分類器的優劣。
對數據進行采樣
對數據采樣可以有針對性地改變數據中樣本的比例,采樣一般有兩種方式:over-sampling和 under-sampling,前者是增加樣本數較少的樣本,其方式是直接復制原來的樣本,而后者是減少樣本數較多的樣本,其方式是丟棄這些多余的樣本。
通常來說,當總樣本數目較多的時候考慮 under-sampling,而樣本數數目較少的時候考慮 over-sampling。
合成樣本
合成樣本(Synthetic Samples)是為了增加樣本數目較少的那一類的樣本,合成指的是通過組合已有的樣本的各個 feature 從而產生新的樣本。
一種最簡單的方法就是從各個 feature 中隨機選出一個已有值,然后拼接成一個新的樣本,這種方法增加了樣本數目較少的類別的樣本數,作用與上面提到的 over-sampling方法一樣,不同點在於上面的方法是單純的復制樣本,而這里則是拼接得到新的樣本。
這類方法中的具有代表性的方法是 SMOTE(Synthetic Minority Over-sampling Technique),這個方法通過在相似樣本中進行 feature 的隨機選擇並拼接出新的樣本。
改變樣本權重
改變樣本權重指的是增大樣本數較少類別的樣本的權重,當這樣的樣本被誤分時,其損失值要乘上相應的權重,從而讓分類器更加關注這一類數目較少的樣本。