1. 程式人生 > >機器學習之樣本不平衡

機器學習之樣本不平衡

機器學習之樣本不平衡

1.樣本不平衡導致什麼問題?

在機器學習的分類問題中,以二分類為例,如果訓練集合的正例和負例的樣本不平衡,相差懸殊很大。比如針對這個不平衡的訓練結合運用邏輯迴歸的時候,一般來說,邏輯迴歸的閾值0~1,常取0.5,當樣本不平衡時,採用預設的分類閾值可能會導致輸出全部為反例,產生虛假的高準確度,導致分類失敗。

樣本不均衡會導致:對比例大的樣本造成過擬合,也就是說預測偏向樣本數較多的分類。

2.樣本不平衡的解決方法?

樣本不平衡的解決方法主要有兩個思路,一個是改變模型,讓其對較少的類別較敏感,增大樣本數較少類別的樣本的權重,當這樣的樣本被誤分時,其損失值要乘上相應的權重,從而讓分類器更加關注這一類數目較少的樣本。比如邏輯迴歸,可以調整閾值,讓其對少的類更敏感。二是改變訓練集合

,用過取樣(over sampling,如SMOTE等)和欠取樣(under sampling)的方式調整訓練集的平衡。

1.過取樣, 重複挑選少的類別加入構建訓練集。樣本較少時採用。
2.欠取樣,拋去多餘的多的類別的樣本。樣本較多的時候採用。
在這裡插入圖片描述

  1. 過取樣(右上)只是單純的重複了正例,因此會過分強調已有的正例。如果其中部分點標記錯誤或者是噪音,那麼錯誤也容易被成倍的放大。因此最大的風險就是對正例過擬合。

  2. 欠取樣(左下)拋棄了大部分反例資料,從而弱化了中間部分反例的影響,可能會造成偏差很大的模型同時,資料總是寶貴的,拋棄資料是很奢侈的
    正例被反覆使用,和過取樣一樣,很容易造成模型的過擬合。

  3. SMOTE與一般的過取樣不用,不是簡單的重複類別少的例,而是生成一些新的資料。這大大降低了過擬合的風險,但同時也會產生一些“可疑”的點。

所以,總結一下緩解樣本不平衡的取樣方法:
在這裡插入圖片描述

機器學習模型構建時正負樣本不平衡帶來的問題及解決方法
欠取樣過取樣對模型的影響