機器學習-模型評價指標

對于機器學習模型性能的評價,我們最常見的指標就是準確率(Accuracy,ACC),當然,這是針對分類的。那么,除此之外,還有很多其他的指標。
前面我們列出的損失函數,其實在某種意義上也是對模型的一種評價指標。

1,二分類模型的評價指標

基礎知識

對于二分類而言,樣本有正負樣本之分(Positive,Negative),而預測則有對錯之分(True,False),所以可用過如下表來表示

真實值:P 真實值:N
預測值:P TP FP
預測值:N FN TN

TP:真正例,真陽性。樣本是正例,預測為正,分類正確
FP:假正例,假陽性。樣本是負例,預測為正,分類錯誤。誤診
TN:真負例,真陰性。樣本是負例,預測為負,分類正確
FN:假負例,假陰性。樣本為正例,預測為負,分類錯誤。漏診

準確率(Accuracy,ACC)

ACC=\frac{TP+TN}{TP+TN+FP+FN}=\frac{T}{T+F}
即分對樣本數比總體樣本數
計算簡單,常見
缺點
1,當樣本不平衡時會不準。例如正負樣本9:1,模型把所有樣本均判為正,計算出ACC=0.9 但這個模型是沒有意義的。
此時,可以計算平均準確率,即每個類別內準確率的平均值。
2,太過簡單,不能體現正負樣本具體的分類對錯情況

精確率(Precision,P)與召回率(Recall,R)

Precision=\frac{TP}{TP+FP}
即模型預測為正的樣本里,真正為正的比例
Recall=\frac{TP}{TP+FN}
召回率也叫做敏感度(Sensitivity)
即在所有正樣本中,模型準確找出的比例

P高代表模型預測為正,基本上就是正。表示其很準。但很準的原因可能是模型太嚴格,例如100個正例,模型只判斷了其中1個為正,確實這個樣本分對了,但是依舊錯分了其他99個,造成假陰性變高。
R高代表模型更能夠把正樣本從樣本中找出來,漏診率低,很敏感,稍微不對就會判正。但例如模型把所有樣本都判為正,此時召回率確實高,但沒有意義。會帶來很高的假陽性。

即高P很容易降低R,高R很容易降低P。兩者需要權衡

F1 指數

F1=\frac{2*P*R}{P+R}=\frac{TP}{TP+(FP+FN)/2}
因為P和R很容易此高彼低,所以F1的分子是P*R,這就使得,盲目提高P和R其中之一,并不會提高F1指數,只有當兩者都高的時候,F1才會高。第二個等號后面的式子也表明,F1指標旨在降低FP和FN(即假陽性和假陰性)兩者。

調和平均數

F1實際是P和R的調和平均數,其特點是F1受PR中值小的那個影響更大,單一的某一個值大是沒用的。

ROC 曲線(Receiver Operating Characteristic)

接收者操作特征曲線,是一種顯示分類模型在所有分類閾值下效果的圖表
此處先介紹兩個指標
1,真正例率(TPR)--即召回率
TPR=\frac{TP}{TP+FN}
2,假正例率(FPR)
FPR=\frac{FP}{FP+TN}
與召回率相對應的,有一個叫做特異性(Specificity)的指標
specificity=\frac{TN}{FP+TN} 表示在所有負樣本中,模型準確找出的負樣本比例。
由此可見,FPR=1-Specificity
我們當然希望TPR=1,FPR=0。
此時,正負樣本均被正確分類
而ROC曲線的橫縱坐標,分別是FPR(1-Specificity),TPR

ROC曲線

在做ROC曲線時,
首先,利用當前模型我們可以得到測試樣本x對應的預測值f(x),這f(x)可以是連續值而非輸出的標簽值(可以認為是尚未送入sign()函數的f(x))。
然后,把測試樣本按照f(x)做升序排序
最后,對于排序后的樣本及其f(x),依次順序從大到小卡閾值把樣本分為兩組,小于閾值的一組判為負樣本,大于閾值的一組為正樣本。
一開始,把閾值設為最大,此時所有樣本為負樣本,TPR=FPR=0
然后逐漸減小閾值,TPR和FPR都升高,對于一個較好的模型,此時應該TPR>FPR>0
然后逐漸把閾值減到最小,此時所有樣本為正樣本,TPR=FPR=1
ROC曲線(0,1)點代表著完美的分類與閾值。所以曲線越接近這一點越好。

AUC (Area Under ROC Curve ROC曲線下面積)

AUC值為ROC曲線所覆蓋的區域面積,顯然,AUC越大,分類器分類效果越好。
AUC = 1,是完美分類器
0.5 < AUC < 1,優于隨機猜測。分類模型妥善設定閾值可以取得好的效果
AUC = 0.5,跟隨機猜測一樣
AUC < 0.5,比隨機猜測還差;但只要總是反預測而行,就優于隨機猜測。

小結一下

這張圖可以仔細回味一下

由上圖可見,
TPR=敏感度(Sensitivity)=召回率(Recall)=分母為正樣本
FPR=1-特異性(Specificity)=分母是負樣本
精確率(Precision)=分母是預測為正的樣本

AUC問題深入探討

大家都知道AUC是ROC曲線下面積,也知道ROC是怎么畫出來的,也知道AUC可以通過公式計算
AUC=\frac{\sum (p_{i},n_{i})_{p_{i}>n_{i}}}{P*N}
但是,互相之間的推導則語焉不詳。

從實際出發,ROC上的點是(FPR,TPR),
而TPR=TP/(TP+FN)=TP/P,FPR=FP/(FP+TN)=FP/N,兩者分母是定值
而在實際繪圖過程中,score倒序,每過一個樣本,繪制一點。
因為一個樣本(通常情況下)非1即0,故沒過一個樣本,TP和FP只會有一個值改變:
如果是正樣本1,則TP+1,FP不變
如果是負樣本0,則FP+1,TP不變
而且,每次變化只能是+1
如此反映到作圖上就是:
如果是正樣本,則向上走一個單位a=1/P;
如果是負樣本,則向右走一個單位b=1/N。

那么,當求AUC時,即為求多個長方形面積之和
如此定義長方形:以當前點(A,B)為左上角,(1,B)為右上角,(A,B-b)為左下角,(1,B-b)為右下角
會發現,我們僅用正樣本對應的點組成的長方形就剛好覆蓋了面積
這個長方形的面積=(分數小于該正樣本分數的負樣本個數)ab

所以
AUC=[排序后,對于所有正樣本,(分數小于該正樣本分數的負樣本個數)]ab
=[針對所有(正,負)樣本對,Score(正)>Score(負)的個數]/(PN)

而據此,則可以發現AUC的物理意義即,正樣本排在負樣本之前的概率
他不在乎正樣本之間如何排列,只在乎正樣本是否排在負樣本之前。這似乎更契合排序的意義

ROC與PRC

同時,ROC核心的兩個量:在正樣本中正確識別出正樣本的概率a,1-在負樣本中正確識別出負樣本的概率b
分別照顧了正負樣本。如此,對于一個模型,正負樣本比例發生變化,并不會影響對應的概率ab,也就對AUC的值影響較小。這樣,在模型連續訓練過程中,auc的值不至于發生劇烈震蕩。
而PRC,則不是,P=TP/(TP+FP)=預估為正樣本的樣本里確實為正樣本的概率,R=TPR=TP/(TP+FN) 這兩組值
正樣本10個,負樣本20個,正樣本全部預估為正,負樣本50%預估為正50%預估為負
則 R=1,P=10/(10+10)=0.5
正樣本10個,負樣本200個,正樣本全部預估為正,負樣本50%預估為正50%預估為負
則R=1,P=10/(10+100)=0.09
正樣本10個,負樣本2000個,正樣本全部預估為正,負樣本50%預估為正50%預估為負
則R=1,P=10/(10+1000)=0.0099
這導致正負樣本比例差異大時,PRC很敏感,可能導致的情況是今天樣本和昨天樣本PRC差異很大。
但如果,我要訓練一個風控模型,盡可能全的識別敏感詞(高召回),則可以看PRC,去看在R很高時例如R=0.95,P的值,然后調整模型保持在R不變時,提高P,例如把P從0.1提高到0.5,則
表示誤審從0.9減少到0.5,既可以減少0.4的復審人力

AUC 與 GAUC

GAUC即每個用戶的AUC加權平均,所謂的權可以使用戶click數量等
為什么有這個指標?在推薦和廣告模型中,排序階段均使用AUC評估模型性能,AUC評價了模型整體排序能力即整體把正樣本排在負樣本前的能力。
但實際上,在真實的應用中,模型的每次預估,都是對同一個用戶排一堆物品/廣告。如此看GAUC似乎更貼切
但業內常用的還是AUC,為何?
1,慣性。GAUC是2017年阿里在DIN論文中提出的,此時AUC已經使用多年
2,AUC與GAUC目標并不相悖,提高AUC,大概率也會提高GAUC
3,用戶點擊序列是長尾分布的,即有大量低頻用戶,其AUC應該是比較容易震蕩的,可能導致GAUC不穩定?

2,多分類模型的評價指標

混淆矩陣(Confusion Matrix)

真實類別1 真實類別2 真實類別3
預測1 500 20 100
預測2 10 480 200
預測3 10 50 370

上表即混淆矩陣,詳細描述了不同類別下樣本預測情況。
由上表可以看出,樣本分3個類別,每個類別樣本分別520,550,670個。
那么此時,有一些指標可以評價多分類模型

ACC與平均ACC

ACC還是可以計算的,如上
ACC=(500+480+370)/(520+550+670)=0.776
平均ACC即各類別的準確率的平均
ACC_{ave}=(500/520+480/550+370/670)/3=0.795

宏觀與微觀指標(Macro & Micro)

多分類混淆矩陣可以拆分成n個二分類混淆矩陣,如上可以拆分為如下3個

1 真實類別1 其他
預測為1 500 120
預測為其他 20 1100
2 真實類別2 其他
預測為2 480 210
預測為其他 70 980
3 真實類別3 其他
預測為3 370 60
預測為其他 300 1010

則可以按照二分類的方式獲取3組指標,如ACC,Precision,Recall,F1等
甚至在獲得預測樣本每一類的概率值的情況下,做出3組ROC曲線
宏觀指標Macro指算出上述3組指標之后,直接做平均

微觀指標Micro指,把上述3表合成1張表,對應位置相加

4 真實類別 其他
預測為真實類別 1350 390
預測為其他 390 3090

通過這張表計算的指標如ACC,Precision,Recall,F1等,稱為微觀指標Micro

回歸模型評價指標

回歸模型評價指標通常會用到回歸模型損失函數如MSE,MAE等

參考

ROC曲線
模型評估與實踐
Macro與Micro

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

推薦閱讀更多精彩內容