在數據科學中,查看精確率和召回率來評估構建的模型是很常見的。而在醫學領域,通常要觀察特異性和敏感性來評估醫學測試。這些概念非常相似,但又有所不同。當這兩個世界相遇時,即當一個醫學測試是一個機器學習模型時,這種差異可能會在醫學界和從事數據科學研究的人員之間造成許多誤解。
2定義來,讓我們看看如下這些定義:
精確率 — 在所有預測為陽性的樣本中,有多少是真的陽性?召回率 — 在所有陽性樣本中,有多少是預測為陽性的?特異性 — 在所有沒有患病的人當中,有多少人得到陰性結果?敏感性 — 在所有患病的人中,有多少人得到陽性結果?如果我們把一個陽性的例子定義為患者,我們可以看到召回率和敏感性是一樣的,但精確率和特異性是不同的。精確率也被稱為 PPV(陽性預測值)。從現在起,我們將把敏感性稱為召回率。這些定義非常簡單,然而,當我試圖理解它們的組合對我的算法意味著什麼時,我發現自己很困惑。精確率、召回率、敏感性的每一個組合都是可能的嗎? 在什麼情況下,是不對的?
如果這有幫助,當陽性標籤被定義為陰性,陰性標籤為陽性時,你可以將特異性稱為對同一問題的召回率。
為了更好地理解,我創建了 8 個不同的分類問題和分類器。每個分類器嘗試將 10 個樣本以最大化或最小化每個度量的方式分類到陽性和陰性籃子中。
3例子1低精確率,高召回率,高特異性如果分類器預測為陰性,你可以相信它,樣本是陰性的。但是要注意,如果樣本是陰性的,你不能確定它是否會預測為陰性(特異性 = 78%)。如果分類器預測為陽性,則不能相信它(精確率 = 33%)。但是,如果示例是陽性,則可以信任分類器(召回率 = 100%)。
2高精確率,高召回率,低特異性把所有例子都預測為陽性顯然不是個好主意。然而,由於總體不平衡,以及精確率相對高,召回率為 100%,因為所有的陽性樣本都被預測為陽性。但特異性為 0%,因為沒有陰性樣本被預測為陰性。3高精確率,低召回率,高特異性這是一個有用的分類器 — 如果它預測一個例子是陽性的,你可以相信它 — 它是陽性的。然而,如果預測它是陰性的,則不能相信它,它仍然是有機率是陽性的。4低精確率,低召回率,高特異性這個分類器真的很糟糕 — 它幾乎把所有的例子都預測為陰性。當預測是陽性時,也是錯的。實際上,使用與這個分類器預測相反的數據的方法更好。5高精確率,低召回率,低特異性6低精確率,高召回率,低特異性這個分類器可能沒用 — 它預測一切都是陽性的。因此,它可以完美地檢測所有陽性的例子,當然(高召回率),但你不能從使用中得到任何信息。7高精確率,高召回率,高特異性這是聖杯 — 分類器檢測所有陽性的例子為陽性,以及所有陰性的例子為陰性。因此,所有測量值都是 100%,完美。8低精確率,低召回率,低特異性這看起來是一個糟糕的分類器,所有陽性的例子都被預測為陰性,所有陰性的例子都被預測為陽性。所有的測量值是 0。然而,你可以簡單地做與預測相反的事情,然後發現是完美的。4小結總之,所有的度量(精確率、召回率和特異性)都為我們提供了關於分類模型不同表現的重要信息。把它們都好好理解一遍是非常重要的。例如,如果不考慮特異性,你可以創建一個有高精確率和召回率的模型,不過它只是簡單地預測一切為真,沒有實際價值(如上面示例 2 所示)。
被數據包圍的人們 — 不要忘記特異性哦!特別是當你需要和醫學領域打交道時。
最後,來個小問題,比如核酸檢測中的假陰性、假陽性是什麼情況?
原文連結https://medium.com/@alon.lek/should-i-look-at-precision-recall-or-specificity-sensitivity-3946158aace1