1. 程式人生 > >機器學習——樣本不均衡的處理方式

機器學習——樣本不均衡的處理方式

版權宣告:本文為博主辛苦碼出來滴~,才疏學淺,如有不對盡請指正,未經博主允許不得轉載。

本片博文主要是對機器學習的分類問題中存在的樣本不均衡情況的處理說明,具體如下:
當對資料進行分類訓練的時候,有時候會出現原始資料樣本不均衡的情況,也就是正例與反例樣本數量存在差異。此時為了能夠更好的訓練模型,需要對原始資料進行“過取樣”或“下采樣”來使得訓練資料分佈均衡。建議採用過取樣
過取樣:讓正反例樣本一樣多,通常是對較少的資料進行資料生成,讓其與較多的資料一樣多。如可採用SMOTE樣本生成策略生成資料,注意:生成資料僅對訓練資料進行生成。
在這裡插入圖片描述
下采樣:讓正反例樣本一樣少,通常是對較多的資料進行隨機取樣,讓其與較少的資料一樣少。對於下采樣來說,通常的模型訓練方式是將下采樣的資料進行交叉驗證訓練模型,

注意:需用原始資料集的測試資料進行模型測試。

對於樣本不均衡的資料來說,用精度來評估模型好壞是存在偏差的,因為它只反映了預測正確的結果如何,不能反映預測錯誤的情況,對於錯誤分類來說又分為過檢漏檢

例如:對於商品檢測來說,如果我們的目的是檢測次品(正例)的商品,那麼此時的 過檢 即本來是正品預測為次品,漏檢 即本來是次品預測為正品。

預測為反例 預測為正例
反例(Negatiave) TN FP
正例(Positive) FN
TP

在這裡插入圖片描述
如果預測結果全為正品,則準確率為99%,此時的準確率
A c c u r a c y

= T P + T N T P + F N + T N + F P Accuracy=\frac{TP+TN}{TP+FN+TN+FP}
不能有效的評估模型的好壞,因為它沒有有效區分正品和次品,但是由於資料樣本不均衡,正品的基數大,所以得到了較高的精度值。

因此對於樣本不均衡的資料來說,需要用“召回率(Recall)”、“精確率(Precision)”和“綜合評價指標(F-Mmeasure)”來評估模型:
召回率(Recall)的公式是
R = T P T P + F N R=\frac{TP}{TP+FN}
召回率(也稱“查全率”)反映了正確被檢索的(TP)佔所有應該檢索到的(TP+FN)的比例,值越大越說明沒有漏檢,查的比較全。

精確率(precision)的公式是
P = T P T P + F P P = \frac{TP}{TP+FP}
精確率(也稱“查準率”)反映了正確被檢索的(TP)所有實際被檢索到的(TP+FP)的比例,值越大越說明沒有過檢,查出的準確度較高。

綜合評價指標(F-measure)的公式是
F = 2 P R P + R F = \frac{2PR}{P+R}
F-Measure綜合反映了召回率和精確率。

對於反例>>正例時,下采樣預測模型會存在以下問題:Recall值雖然達到標準,但容易出現過檢的情況,即將正品預測為次品,FP值過大,精確率低。而對於過取樣來說,雖然Recall值略低於下采樣,但能夠有效降低過檢出現的次數,既保證了召回率又保證了精確率 因此,建議使用過取樣來訓練模型。

上述方法可用於疾病檢測、欺詐檢測、商品檢測等領域,需要根據實際情況對召回率和精確率取折中策略。