【Machine Learning, Coursera】机器学习Week6 偏斜数据集的处理
ML Week6: Handing Skewed Data
本節內容:
偏斜類(skewed class)問題:數據集中每一類的數據量嚴重不均衡
如果數據集為偏斜類,分類正確率不是一個好的指標。比如惡性腫瘤預測問題,假設數據集中有0.5%的患者罹患惡性腫瘤,那么一個錯誤率為1%的學習算法可能并不是一個好的算法。此外,永遠預測腫瘤為良性的算法能達到99.5%的正確率,但這顯然是沒有意義的。
那么,有沒有更好的衡量指標呢?
這種情況下,我們可以采用查準率(precision)和召回率(recall)。
查準率衡量的是在所有預測y=1的樣本中,實際上y=1的比例:
precision=truepositivesno.ofpredictedpositives=truepostruepos+falseposprecision=\frac{true\ positives}{no.\ of\ predicted\ positives}= \frac{true\ pos}{true\ pos+false\ pos}precision=no.?of?predicted?positivestrue?positives?=true?pos+false?postrue?pos?
召回率衡量的是在所有實際y=1的樣本中,預測y=1的比例:
recall=truepositivesno.ofactualpositives=truepostruepos+falsenegrecall=\frac{true\ positives}{no.\ of\ actual\ positives}=\frac{true\ pos}{true\ pos+false\ neg}recall=no.?of?actual?positivestrue?positives?=true?pos+false?negtrue?pos?
真陽性(true positive):預測y=1,實際y=1
假陽性(false positive):預測y=1,實際y=0
真陰性(true negative):預測y=0,實際y=0
假陰性(false negative):預測y=0,實際y=1
我們可以畫出下面2x2的表格幫助理解和記憶,列表示真實分類,行表示預測分類。
對于上述惡性腫瘤預測問題,如果我們希望審慎一些,只有非常確定的情況下才告訴患者他患了癌癥,即降低出現假陽性的可能,那么我們可以提高邏輯函數的默認閾值,比如從0.5變為0.8. 原來hθ(x)≥0.5h_\theta(x)≥0.5hθ?(x)≥0.5時預測y=1,現在只有當hθ(x)≥0.8h_\theta(x)≥0.8hθ?(x)≥0.8時才預測y=1.
反之,如果我們希望任何可能患有癌癥的患者不錯過救治時機,即降低出現假陰性的可能,那么我們可以降低默認閾值。
對于前一種情況,我們可以得到較高的查準率,但提高閾值必定會導致更多的癌癥患者沒有被發現,即降低了召回率。后一種情況,我們則會得到較高的召回率和較低的查準率。
我們當然希望兩個指標都盡可能地高,但在兩者無法兩全的情況下,應該如何權衡呢?
F1F_1F1? Score 能幫我們解決這個難題,它結合了查準率和召回率兩個指標,綜合考察算法的效果:
F1=2PRP+RF_1=2\frac{PR}{P+R}F1?=2P+RPR?
P: precision R: recall
如在以下三個算法中,F1F_1F1? Score能得到更好的結果。
總結
以上是生活随笔為你收集整理的【Machine Learning, Coursera】机器学习Week6 偏斜数据集的处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 淘宝商品数据清洗及预处理
- 下一篇: 修炼内功---数据结构与算法12---快