最近在新冠肺炎新聞報道中頻繁出現(xiàn)一個詞“假陰性”速警。就是檢測結(jié)果呈現(xiàn)是陰性(沒有檢測出病毒)粪糙,實際上是一種假象强霎,真實情況是陽性的。檢測結(jié)果表現(xiàn)出“假陰性”蓉冈,后果是非常嚴(yán)重的城舞,相當(dāng)于你把一個感染者放回家了。今天就來總結(jié)一下衡量檢測或者說預(yù)測結(jié)果的方法和指標(biāo)寞酿。
我們把“檢測”歸納為“預(yù)測”家夺,認(rèn)為檢測新冠病毒實際上就是對是否感染做預(yù)測,把所有的檢測方法抽象成模型伐弹。模型的輸入就是病人待檢測的樣本拉馋,輸出結(jié)果為陰性或者陽性兩種。如果用函數(shù)來描述就是
其中就是待檢測樣本惨好,
就是輸出的結(jié)果煌茴,對應(yīng)關(guān)系
就是檢測的方法。
衡量模型好壞通常有這么一些指標(biāo)日川。精度景馁,召回率,逗鸣,ROC曲線合住,AUC值等,下面我們分別來介紹這些指標(biāo)撒璧。
二分類問題
模型的輸出類別透葛,只考慮二分類問題,也就是上面對應(yīng)的陰性和陽性卿樱,通常我們把陰性數(shù)值化為0僚害,陽性為1。衡量一個模型的好壞是需要大量的已知樣本的繁调,假設(shè)我們現(xiàn)在有個樣本萨蚕,分別是
我們通過對樣本進(jìn)行預(yù)測,把預(yù)測結(jié)果與已知結(jié)果對比蹄胰,就能知道這個模型的好壞岳遥。
準(zhǔn)確率
首先你能想到的是準(zhǔn)確率,模型預(yù)測準(zhǔn)不準(zhǔn)裕寨,預(yù)測對了多少數(shù)據(jù)這個是很重要的.那么準(zhǔn)確率就是預(yù)測對的樣本數(shù)除以總的樣本數(shù)
浩蓉。
精度派继,召回率和F1值
我們發(fā)現(xiàn)有時候僅僅是準(zhǔn)確率這個指標(biāo)是不夠,舉一個極端點的例子捻艳,我們預(yù)測某個地方的地震驾窟,一天預(yù)測1000次,我都說沒有地震认轨,那準(zhǔn)確率幾乎是100%绅络。準(zhǔn)確率這么高我不是成大仙了,實際上我就是胡說的嘁字,因為某個地方發(fā)生地震的概率實在太低昨稼。再比如預(yù)測A股大盤,我根本不用看大盤拳锚,閉著眼說跌,結(jié)果一年下來寻行,發(fā)現(xiàn)準(zhǔn)確率竟然也查過50%霍掺。這樣的預(yù)測結(jié)果實際上沒有參考價值的。
對于一個已經(jīng)訓(xùn)練好的模型,我們有6條檢驗數(shù)據(jù)拌蜘,3條正例杆烁,3條反例。第2行是模型預(yù)測值简卧,第3行是樣本的真實值兔魂。預(yù)測值
,將6條驗證數(shù)據(jù)代入模型中,分別得到模型的預(yù)測值举娩。
如果按照預(yù)測結(jié)果大于0.5 就是正例析校,小于0.5是反例,預(yù)測正確的數(shù)據(jù)為共4條數(shù)據(jù)铜涉,準(zhǔn)確率就是4/6=0.67.
正確地預(yù)測為正例TP(True Positive)分別是 2條智玻,正確地預(yù)測為反例TN(True Negative)的分別是
,錯誤地預(yù)測為正例FP(False Positive)分別是
芙代,錯誤地預(yù)測為反例FN分別是
吊奢。
于是我們得到混淆矩陣(下圖),對角線上的數(shù)都是預(yù)測正確的纹烹,其余都是預(yù)測錯誤的页滚。
精度描述的是在預(yù)測為正例的樣本中有多少正例是被正確預(yù)測的:
召回率描述的是在實際正例樣本中有多少正例是被正確預(yù)測的:
是精度和召回率的調(diào)和平均數(shù):
ROC曲線
上面的例子中我們假定預(yù)測值大于等于0.5為正例,小于0.5為反例铺呵,這個0.5稱為閾值裹驰,閾值是可以根據(jù)實際情況改變的。如果閾值改為0.8片挂,那么預(yù)測值不小于0.8的才能被劃分到正例邦马,原來大于0.5小于0.8的“正例”就被劃分為反例了。閾值越大相應(yīng)被劃分到正例的樣本就會減少,正例的識別率提高了滋将,意味著對于正例的預(yù)測越有把握邻悬。
假陽率
描述在所有實際為陰性(反例)的樣本中,被錯誤地判斷為陽性(正例)之比率.
真陽率
描述在所有實際為陽性(正例)的樣本中随闽,被正確地判斷為陽性(正例)之比率
ROC曲線的X軸為假陽率
, Y軸為真陽率
.通過改變上述的閾值可以得到一些列的點,連接這些點就得到了ROC曲線父丰。這些兩個比率都是小于1的,因此ROC曲線在1x1的正方形內(nèi)掘宪。接下來分別來計算幾個點蛾扇。
- 閾值等于0.5時,根據(jù)上面的混淆矩陣我們計算
假陽率
和真陽率
:
- 閾值等于1時,說明預(yù)測值全部是反例魏滚,意味著
,
,紅色為真實正例镀首,白色為真實反例。
- 閾值等于0.6鼠次,
不小于0.6都認(rèn)為預(yù)測值為正例更哄。
- 閾值等于0.3
- 閾值等于0時,意味著全部預(yù)測為正例腥寇。
畫出ROC曲線
我們分別計算了閾值等1成翩,0.6,0.5赦役,0.3麻敌,0,其對應(yīng)的假陽率和真陽率分別為.畫出這條曲線就是ROC曲線了掂摔∈醺幔看起來點有點少了,盡量多取一些點乙漓,畫出來的圖形更加好看聂示。曲線下的面積就是AUC值了。
總結(jié)
網(wǎng)上已有大量的資料討論ROC曲線和AUC值簇秒,本文不在贅述鱼喉。本文通過一個簡單例子,分別講述了精度趋观,召回率扛禽,F(xiàn)1值的計算方法,同時也計算了不同閾值對應(yīng)的真陽率和假陽率皱坛,出了ROC曲線编曼。在網(wǎng)上也看過很多通俗的文章,大多在講述得到ROC曲線時省略了很多內(nèi)容剩辟,本文恰好補充了不足之處掐场,對于初學(xué)者相對友好往扔。
如果喜歡我的文章,可以關(guān)注我的公眾號“數(shù)學(xué)編程”熊户。