在機器學習中,咱們獲取的數據每每存在一個問題,就是樣本不均勻。好比你有一個樣本集合,正例有9900個,負例100個,訓練的結果每每是不好的,由於這個模型總趨近因而正例的。算法
就算全是正那麼,也有99%的準確率,看起來挺不錯的,可是咱們要預測的負樣本極可能一個都預測不出來。機器學習
這種狀況,在機器學習中有三個處理辦法,過採樣、欠採樣、再平衡(再縮放)學習
過採樣:增長一些數據數據,使得正反例數量一致,好比這裏,咱們增長負例9800個,若單純複製這100個負例,則極可能會致使多重共線性問題,因此實際的處理方法通常根據原始數據進行一些處理。資源
好比經常使用的SMOTE算法,經過差值的方法增長樣本數量。方法
欠採樣:減小一些樣本使得正反例數量一致,好比這裏減小9800個正例,但這樣一來就損失了不少數據資源,實際經常使用的作法是將多的樣本分紅不少份,用N個訓練器來訓練,最後去平均。數據
好比這裏,咱們能夠將正例分紅99份100個的集合,99份分別和100個負例組合成訓練集來進行訓練。固然若是正負例的數量差距太大的話可能會有不少個訓練器了。集合
再平衡:通常的分類算法訓練出來是一個0-1的值,通常大於等於0.5的就是正,小於0.5的爲負例。再平衡的思想就是根據正負樣本數量的比例對訓練結果斷定的調整。模型
通用的算法是:>=正例數量/總數量,則爲正;<正例數量/總數量爲負
在這裏咱們的斷定改成9900/(9900+100)=0.99
因此預測結果當大於等於0.99時候咱們斷定爲是正例。