貝葉斯的重病篩查案例-Precision-Accuracy-Recall

智能決策上手系列教程索引

這是一個經(jīng)典的貝葉斯案例,也是很反直覺的,很多解釋認(rèn)為這個反直覺是因為我們的日常錯誤的思維習(xí)慣,但我覺得可能恰恰相反,下面我們先回顧一下這個案例,然后再進(jìn)一步討論。

案例回顧

對所有人來說某種癌癥的患病率為5%,醫(yī)生使用某設(shè)備為你做了檢查,此設(shè)備檢查的準(zhǔn)確率為80%,檢查結(jié)果顯示你患有此病(陽性)。請問你真實患有此病的概率是多少?

常見解答

首先我們要理解5%和80%這兩個概率是什么意思。

患病率為5%,也就是說100個普通人里面有5個人生病,如圖中紅色。
設(shè)備的準(zhǔn)確率為80%,也就是說有20%會搞錯,95個真實無病的人來做檢查,也會有95x0.2=19個人被查出病來,同樣5個有病的也只查出4個來

這么算的話,總共有4+19=23個人被查出有病,你是其中之一。而實際上真有病的可能是4/23大約是17%,所以你可以稍微放寬心一些,因為你真的患了這種癌癥的可能性還不足五分之一,這就是常見解答給出的結(jié)論。

文字游戲

上面的解說看似科學(xué)完美,而且結(jié)果足夠的樂觀,但是不要高興的太早。

你的樂觀完全建立在對“檢查準(zhǔn)確率80%”這個說法的理解之上的,如果我把它解釋成檢查出100個有病,那么80個就真實有病,你還會樂觀起來嗎?

這簡直就是純粹文字游戲而已。

“檢查準(zhǔn)確率80%”到底怎么解?為100個人做檢查,最終結(jié)果(無論真有病或真無病)有80%是正確的嗎?真這么解釋的話就不用買設(shè)備了,直接來問我吧,100個人來問我,我說100個人無病,那么我的準(zhǔn)確率豈不是95%?(因為我對95個人的判斷是正確的)。

在上面的常規(guī)解答中認(rèn)為,80%的解釋是:

  • 100個真有病的來檢查,此設(shè)備能查出80個有病,20個無病;
  • 100個真無病的來檢查,此設(shè)備能查出80個無病,20個有病。

對真有病和真無病的分辨能力可以控制在同一水平,是不是太巧合了?這就好像說如果100個男人中你可能錯誤認(rèn)為其中20個是女人,那么你就一定也會把100個女人中的20個誤認(rèn)為是男人一樣不靠譜。

一個反例

假設(shè)某種疾病,只要某個血液指標(biāo)k超過500就可以斷定患有這種病,真實患病者中一半的患者都k>500,而k<500的普通人中也有1/4的人可能患病,這批人占病患總數(shù)的另一半。

某設(shè)備就是根據(jù)k值進(jìn)行檢查的,只要k>500就判斷有病,k<500就判斷健康。
普通人中這種病的發(fā)病率是40%,那么100人來檢查,20個被正確檢查為有病,另外80人中的1/4也就是20個病患沒有檢測出來,60個沒病的被正確判斷,那么設(shè)備的“準(zhǔn)確率”是80%。

如果這個設(shè)備也檢查你并判斷有病,那么你真實患病可能是多少?100%!和30%、80%完全無關(guān)。

所以,如果你已經(jīng)被檢查出有病,那么真實的患病可能性只和設(shè)備對于真實病患的識別能力有關(guān),換句話說,它查出100個有病結(jié)果中實際多少人真的有病。

TP、FP、TN、FN

為了搞明白這個問題,我們要首先明確幾個詞語的定義,否則討論是沒有意義的。

對于設(shè)備檢查病情這個事情,無外乎四種情況:

  • TP,實際有病且檢查也說有病。也就是有病,而且被正確查出來了,報告上的陽性Positive是真的,即True Positive真陽性。雖然生病,但還有得治。
  • FP,實際沒病但檢查說有病。也就是沒病,但被誤診為有病了,報告上的陽性Positive是錯誤的,即False Positive假陽性。這是倒霉,要浪費醫(yī)藥費了。
  • TN,實際沒病且檢查也說沒病。也就是沒病,檢查結(jié)果也是正確的沒病,報告上的陰性Negative是真的,及True Negative真陰性。皆大歡喜。
  • FN,實際有病但檢查說沒病。也就是有病,但被誤診為沒病了,報告上的陽性Positive是錯誤的,即False Positive假陰性。最大悲劇,最后不知道怎么死的。

如下圖所示,F(xiàn)alse開頭的紅色FP、FN都是誤診。


精準(zhǔn)率Precision和準(zhǔn)確度Accuracy

打的準(zhǔn)和打的對是兩回事,你槍槍爆頭固然是打得準(zhǔn),但如果殺得都是自己人那就不是打的對。

直接從公式上可以看出它們的不同含義。

精確率Precision也叫查準(zhǔn)率,或PPV(positive predictive value陽性預(yù)測值),就是你不管你從多少人中查出100個有病的,其中實際多少人真的有病,即真陽病患數(shù)TP除以所有陽性報告數(shù)量TP+FP。

準(zhǔn)確度Accuracy就是你總共就查了100個人出了100份報告,其中有多少報告被你寫對了,既包含真有病你寫的也是陽性,也包含真沒病你也寫的是陰性,就是所有真陽和真陰TP+TN的數(shù)量占所有報告總數(shù)的比例,也就是1減誤診率。

準(zhǔn)確度Accuracy有些時候沒卵用,比如類似上面剛才舉過的例子,某普通人患病率0.01%的癌癥,隨便弄臺機(jī)器檢查誰都說沒病,這機(jī)器的Acc都能達(dá)到99.99%,Acc對于這種有病沒病的數(shù)量比例嚴(yán)重失調(diào)的情況可以說毫無意義。

所以后來又發(fā)明出了平衡準(zhǔn)確度Balanced Accuracy。

在這里,TPR是指真陽率true positive rate,也叫Recall召回率或者h(yuǎn)it rate命中率、sensitivity敏感度,即查出的真患病人數(shù)占實際所有病患人數(shù)的比例;TNR是真陰率true negative rate,即查出的真沒病人數(shù)占實際所有沒病人數(shù)的比例;平衡準(zhǔn)確度Balanced Accuracy是這兩個比例的平均數(shù)。

從上面看,對于重病檢查的案例,我們知道的如果是準(zhǔn)確度Accuracy,其實沒啥用。我們要的是精確率Precision,就是你查出100個有病,其中多少人實際會中招。

精確率Precision、召回率Recall和F值F-measure

再看一下上面我們在Balanceed Accuracy中提到的TPR,Recall召回率,它也叫做查全率,它表示全部生病的人里面你能查出多少個來,比如開始例子中,5個人生病,如果只查出4個,那么這個設(shè)備的召回率就是4/5等于80%。

對比下圖可以幫助我們理解精確率Precision和召回率Recall的關(guān)系:


各個集合直接的關(guān)系
精確率Precision、召回率Recall

Recall查準(zhǔn)率和Precision查全率往往有此消彼長的關(guān)系。比如開始的案例,如果我們把100人都檢查為有病,那么查全率就是100%,一個不漏,但這樣導(dǎo)致查準(zhǔn)率變?yōu)?/100等于5%,低的可憐。反之,我們只查出5個人中的1個有病,那么查準(zhǔn)率就是100%,查全率卻只有1/5等于20%,也是低的可憐。最好的情況是查準(zhǔn)率和查全率都是100%,5個有病的都查出來,一個不多一個也不少。

從上面我們也看出,單用查全率或者查準(zhǔn)率都不全面,于是就出現(xiàn)了將兩者糅合在一起的F值F-measure:


就是查準(zhǔn)率Precision和查全率Recall的調(diào)和平均數(shù),兩數(shù)積2倍除以兩數(shù)和。
由于Precision又叫PPV(positive predictive value陽性預(yù)測值),Recall又叫做
TPR(true positive rate真陽性率),所以有:

F值就是2倍真陽除以2倍真陽、假陽與假陰的和,它的分母部分看起來像這樣:


另外,如果認(rèn)為查準(zhǔn)率或者查全率更重要的話,F(xiàn)值還可以為Precision和Recall使用不同的權(quán)重,得到更多變體。此外也有很多其他用于評估類似設(shè)備或算法質(zhì)量的方法,大家有興趣可以多關(guān)注一些。

回到開始

假陽率FPR(false positive rate)也叫fall-out,是誤診為有病的數(shù)量除以真實無病的數(shù)量(假陽性加真陰性):


最初我們的案例的下圖中,由于設(shè)定了假陽率FPR也是80%,查全率Recall是80%,所以設(shè)備的查準(zhǔn)率Precision是4/23大約是17%,F(xiàn)1值是(2x5)/(2x5+1+19)大約等于28%,都還是蠻低的。


總之,如果一個查準(zhǔn)率只有17%的設(shè)備檢查你患了絕癥,你還是可以堅強(qiáng)一些再看看進(jìn)一步情況,但如果一個查準(zhǔn)率有80%的設(shè)備檢查你患了絕癥,那么你很可能遇到了大麻煩。

總結(jié)

  • T、F、P、N的含義
  • Accuracy、Balanced Accuracy
  • Precision、Recall、F-measure
  • 反常識的科學(xué)知識很多,但我們要認(rèn)真甄別,仔細(xì)思考,因為常識是我們賴以生存的根本,不要輕易因為新奇的事情而放棄。

請注意,這里大多時候把Precision講做查準(zhǔn)率,但請記住它的更常用名稱是精確度;Recall更科學(xué)的名字是召回率,查全率只是方便理解的說法。


智能決策上手系列教程索引

每個人的智能決策新時代

如果您發(fā)現(xiàn)文章錯誤,請不吝留言指正;
如果您覺得有用,請點喜歡;
如果您覺得很有用,歡迎轉(zhuǎn)載~


END

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容