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

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

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

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

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

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

在這裏插入圖片描述
如果預測結果全爲正品,則準確率爲99%,此時的準確率
Accuracy=TP+TNTP+FN+TN+FPAccuracy=\frac{TP+TN}{TP+FN+TN+FP}
不能有效的評估模型的好壞,因爲它沒有有效區分正品和次品,但是由於數據樣本不均衡,正品的基數大,所以得到了較高的精度值。

因此對於樣本不均衡的數據來說,需要用“召回率(Recall)”和“精確率(Precision)”來評估模型:
召回率(Recall)的公式是
R=TPTP+FNR=\frac{TP}{TP+FN}
召回率反映了正確被檢索的(TP)佔所有應該檢索到的(TP+FN)的比例,值越大越說明沒有漏檢。
精確率(precision)的公式是
P=TPTP+FPP = \frac{TP}{TP+FP}
精確率反映了正確被檢索的(TP)所有實際被檢索到的(TP+FP)的比例,值越大越說明沒有過檢。

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章