1. 程式人生 > >【Machine Learning, Coursera】機器學習Week6 偏斜資料集的處理

【Machine Learning, Coursera】機器學習Week6 偏斜資料集的處理

ML Week6: Handing Skewed Data

本節內容: 1. 查準率和召回率 2. F1 Score

偏斜類(skewed class)問題:資料集中每一類的資料量嚴重不均衡

如果資料集為偏斜類,分類正確率不是一個好的指標。比如惡性腫瘤預測問題,假設資料集中有0.5%的患者罹患惡性腫瘤,那麼一個錯誤率為1%的學習演算法可能並不是一個好的演算法。此外,永遠預測腫瘤為良性的演算法能達到99.5%的正確率,但這顯然是沒有意義的。

那麼,有沒有更好的衡量指標呢?

這種情況下,我們可以採用查準率(precision)和召回率(recall)。

查準率衡量的是在所有預測y=1的樣本中,實際上y=1的比例:

precision=truepositivesno.ofpredictedpositives=truepostruepos+falsepos

召回率衡量的是在所有實際y=1的樣本中,預測y=1的比例:

recall=truepositivesno.ofactualpositives=truepostruepos+falsene
g
真陽性(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.5時預測y=1,現在只有當hθ(x)

0.5時才預測y=1.

反之,如果我們希望任何可能患有癌症的患者不錯過救治時機,即降低出現假陰性的可能,那麼我們可以降低預設閾值。

對於前一種情況,我們可以得到較高的查準率,但提高閾值必定會導致更多的癌症患者沒有被發現,即降低了召回率。後一種情況,我們則會得到較高的召回率和較低的查準率。

我們當然希望兩個指標都儘可能地高,但在兩者無法兩全的情況下,應該如何權衡呢?

F1 Score 能幫我們解決這個難題,它結合了查準率和召回率兩個指標,綜合考察演算法的效果

F1=2PRP+R P: precision R: recall

如在以下三個演算法中,F1 Score能得到更好的結果。 這裡寫圖片描述