智能決策上手系列教程索引
這是一個經(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)系:
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