在一個(gè)理想的世界里,我們的模型能夠給出完全準(zhǔn)確的分類判斷超升,但事實(shí)是模型總是會(huì)出錯(cuò)的入宦。
All models are wrong, but some works. - Some smart guy
在進(jìn)行模型的性能評(píng)價(jià)時(shí)哺徊,常用的指標(biāo)有準(zhǔn)確性、查準(zhǔn)率和查全率等指標(biāo)乾闰,這幾個(gè)指標(biāo)的計(jì)算公式實(shí)際上非常簡單落追,但這幾個(gè)看似簡單的量實(shí)際在計(jì)算中很容易就被混淆,而幸好我們可以通過圖表而非記憶的方式準(zhǔn)確的進(jìn)行描述涯肩,這一統(tǒng)計(jì)分類結(jié)果中真陽性 True positives轿钠,假陽性 False positives,假陰性 False negatives病苗,真陰性 True negatives 的數(shù)量的矩陣稱為混淆矩陣 Confusion matrix疗垛。
準(zhǔn)確性
準(zhǔn)確性是最容易理解的概念:
- Accuracy = (True positives + True negatives) / all samples
在 sklearn 中可以輕松的統(tǒng)計(jì)準(zhǔn)確性:
from sklearn.metrics import accuracy_score
accuracy = accuracy_score (y_labeled, y_predicted)
查準(zhǔn)率 Precision 和查全率 Recall
由于在很多實(shí)際應(yīng)用中,僅僅關(guān)心正確分類的結(jié)果是不夠的硫朦,并且在數(shù)據(jù)偏斜嚴(yán)重的情況下继谚,模型準(zhǔn)確率可能具有相當(dāng)程度的誤導(dǎo)性。我們也需要知道被錯(cuò)誤分類的結(jié)果阵幸,如假陽性 False positive 和假陰性 False negative 的發(fā)生情況花履,以確認(rèn)為此需要承擔(dān)的分類錯(cuò)誤的代價(jià)。
查準(zhǔn)率 Precision: 真陽性樣本數(shù)量與所有被分類為陽性的樣本的數(shù)量的比值挚赊。
- Precision = True positives / (True positives + False positives)
查全率 Recall:真陽性樣本數(shù)量與樣本集中全部陽性樣本的數(shù)量的比值诡壁。
- Recall = True positives / (True positives + False negatives)
F1 Score & Fβ Score
F1 Score 這一評(píng)價(jià)計(jì)算查準(zhǔn)率和查全率的調(diào)和平均數(shù) Harmonic mean,當(dāng)二者之一過小時(shí)荠割,F(xiàn)1-Score 也會(huì)非常小妹卿,進(jìn)而提示模型異常。
- F1-Score = 2 * Precision * Recall / (Precision + Recall)
進(jìn)一步地蔑鹦,當(dāng)我們希望模型給予查準(zhǔn)率或查全率二者之一更高的權(quán)重時(shí)夺克,我們可以采用泛化的 Fβ Score:
- Fβ Score = (1 + β2) * Precision * Recall / (β2 * Precision + Recall)
其中 β 越大,模型越傾向于提高查全率嚎朽,反之亦然铺纽。
敏感度和特異度
在很多領(lǐng)域的應(yīng)用中查全率 Recall 也稱為敏感度 Sensitivity,對(duì)應(yīng)的數(shù)據(jù)為上文所述的混同矩陣的第一行哟忍,對(duì)應(yīng)敏感度還有另外一個(gè)評(píng)價(jià)指標(biāo)特異度 Specifity狡门,對(duì)應(yīng)的數(shù)據(jù)為上文所述的混同矩陣的第二行,其計(jì)算公式為:
Specificity = True negatives / (True negatives + False positives)
Sensitivity = True positives / (True positives + False negatives)
這幾個(gè)公式看起來非常簡單锅很,但實(shí)際上能夠準(zhǔn)確的區(qū)分并不容易其馏,可以在清楚概念的基礎(chǔ)上查詢使用即可。
ROC Curve
由于在建模過程中可以在確保準(zhǔn)確性不變的情況下選擇不同的判斷閾值 Decision Rule 而造成 Sensitivity 和 Specificity 的值的不同爆安,因此需要根據(jù)實(shí)際應(yīng)用來確定盡最大可能提高哪一個(gè)指標(biāo)叛复,為了描述模型在不同的判斷閾值下的敏感度和 (1- 特異度)的變化情況,可以繪制 ROC 曲線來觀察這一趨勢。
一個(gè)有趣的事實(shí)是 ROC 對(duì)應(yīng)的英文單詞為 Receiver Operating Characteristic褐奥,其最早源自于雷達(dá)性能測試咖耘,但由于這個(gè)方法被廣泛的用于其它領(lǐng)域而為了避免不同領(lǐng)域的使用者被這個(gè)全名迷惑,通常只提它的縮寫名稱 ROC抖僵。圖中對(duì)應(yīng)的綠色直線為隨機(jī)判斷情況下的 ROC 曲線鲤看,而 ROC 曲線下的面積被稱為 Area Under Curve,在對(duì)比不同的模型時(shí)耍群,AUC 值越大的模型越好义桂。
混淆矩陣
上文提到的混淆矩陣只是最簡單的情況,當(dāng)我們進(jìn)行多分類建模時(shí)蹈垢,其橫縱坐標(biāo)可以變成多個(gè)不同的分類慷吊。
在理想情況下混同矩陣將是一個(gè)單位陣,但真實(shí)情況中我們只能盡量的提高對(duì)角線元素的值曹抬,每一行元素之和為 1.
R2 Score
針對(duì)線性回歸問題來說溉瓶,除了均方誤差 MSE/SSE 外,還可以通過 R2 Score 來衡量谤民,這一指標(biāo)也被稱為 Coefficient of Determination堰酿,其計(jì)算方法為:
Sum of Squares Due to Error, SSE = Σ(yi - ?i)2
Sum of Squares Due to Regression, SSR = Σ(?i - y?i)2
R2 = 1 - SSR/SSE
R2 取值越接近于 1 越好。
mAP, mean Average Precision
在視覺應(yīng)用中张足,用于評(píng)價(jià)模型在目標(biāo)檢測任務(wù)中的表現(xiàn)触创,具體計(jì)算見參考閱讀。