1. 上取樣和下取樣
上取樣:通過增加分類中少數類樣本的數量來實現樣本均衡,最直接的方法是簡單複製少數類樣本形成多條記錄,這種方法的缺點是如果樣本特徵少而可能導致過擬合的問題;經過改進的過抽樣方法通過在少數類中加入隨機雜訊、干擾資料或通過一定規則產生新的合成樣本。
下取樣:通過減少分類中多數類樣本的樣本數量來實現樣本均衡,最直接的方法是隨機地去掉一些多數類樣本來減小多數類的規模,缺點是會丟失多數類樣本中的一些重要資訊。
上取樣和下取樣更適合大資料分布不均衡的情況,尤其是第一種(上取樣)方法應用更加廣泛。
2. 正負樣本的懲罰權重
在演算法實現過程中,對於分類中不同樣本數量的類別分別賦予不同的權重(一般思路分類中的小樣本量類別權重高,大樣本量類別權重低),然後進行計算和建模。
如果演算法本身支援基於類別引數的調整設定,這種思路是更加簡單且高效的方法。
3. 組合/整合
組合/整合方法指的是在每次生成訓練集時使用所有分類中的小樣本量,同時從分類中的大樣本量中隨機抽取資料來與小樣本量合併構成訓練集,這樣反覆多次會得到很多訓練集和訓練模型。最後在應用時,使用組合方法(例如投票、加權投票等)產生分類**結果。
例如,在資料集中的正、負例的樣本分別為100和10000條,比例為1:100。此時可以將負例樣本(類別中的大量樣本集)隨機分為100份(當然也可以分更多),每份100條資料;然後每次形成訓練集時使用所有的正樣本(100條)和隨機抽取的負樣本(100條)形成新的資料集。如此反覆可以得到100個訓練集和對應的訓練模型。
這種解決問題的思路類似於隨機森林。如果計算資源充足,並且對於模型的時效性要求不高的話,這種方法比較合適。
4. 一分類
對於正負樣本極不平衡的場景,我們可以換乙個完全不同的角度來看待問題:把它看做一分類(one class learning) 或異常檢測問題,這類方法的重點不在於捕捉類間的差別,而是為其中一類進行建模,比較有代表性的是 one-class-svm。
單分類實際中有很多應用,比如人臉識別,我們不可能給所有的讓機器去分類,事實上我們只能給出很多人臉的影象,讓機器去學習識別。之後再來影象時,符合這些影象特徵的就屬於人臉,反之則不是。對比二分類,顯著的區別就是,二分類不但能的出來這個不是人臉,他還能告訴你這個是豬臉。
本篇博文參考資料:
[1] 如何解決機器學習中樣本不均衡問題?
[2] 機器學習:不均衡樣本情況下的抽樣
[3] 單分類 one-class-svm
機器學習中國如何解決正負樣本不均衡問題
抽樣是解決樣本分佈不均衡相對簡單且常用的方法,包括過抽樣和欠抽樣兩種。過抽樣過抽樣 也叫上取樣 over sampling 方法通過增加分類中少數類樣本的數量來實現樣本均衡,最直接的方法是簡單複製少數類樣本形成多條記錄,這種方法的缺點是如果樣本特徵少而可能導致過擬合的問題 經過改進的過抽樣方法通過在...
正負樣本不均衡的解決辦法
問題定義 資料集中,每個類別下的樣本數目相差很大 數量級上的差距 以下以二分類問題為例說明。1.smote synthetic minority over sampling technique 過取樣小樣本 擴充小類,產生新資料 即該演算法構造的資料是新樣本,原資料集中不存在的。該基於距離度量選擇小...
sklearn機器學習 貝葉斯的樣本不均衡問題
import numpy as np from sklearn.bayes import multinomialnb,gaussiannb,bernoullinb from sklearn.model selection import train test split from sklearn.da...