對于機器學習模型性能的評價,我們最常見的指標就是準確率(Accuracy,ACC),當然,這是針對分類的。那么,除此之外,還有很多其他的指標。
前面我們列出的損失函數,其實在某種意義上也是對模型的一種評價指標。
1,二分類模型的評價指標
基礎知識
對于二分類而言,樣本有正負樣本之分(Positive,Negative),而預測則有對錯之分(True,False),所以可用過如下表來表示
真實值:P | 真實值:N | |
---|---|---|
預測值:P | TP | FP |
預測值:N | FN | TN |
則
TP:真正例,真陽性。樣本是正例,預測為正,分類正確
FP:假正例,假陽性。樣本是負例,預測為正,分類錯誤。誤診
TN:真負例,真陰性。樣本是負例,預測為負,分類正確
FN:假負例,假陰性。樣本為正例,預測為負,分類錯誤。漏診
準確率(Accuracy,ACC)
即分對樣本數比總體樣本數
計算簡單,常見
缺點
1,當樣本不平衡時會不準。例如正負樣本9:1,模型把所有樣本均判為正,計算出ACC=0.9 但這個模型是沒有意義的。
此時,可以計算平均準確率,即每個類別內準確率的平均值。
2,太過簡單,不能體現正負樣本具體的分類對錯情況
精確率(Precision,P)與召回率(Recall,R)
即模型預測為正的樣本里,真正為正的比例
召回率也叫做敏感度(Sensitivity)
即在所有正樣本中,模型準確找出的比例
P高代表模型預測為正,基本上就是正。表示其很準。但很準的原因可能是模型太嚴格,例如100個正例,模型只判斷了其中1個為正,確實這個樣本分對了,但是依舊錯分了其他99個,造成假陰性變高。
R高代表模型更能夠把正樣本從樣本中找出來,漏診率低,很敏感,稍微不對就會判正。但例如模型把所有樣本都判為正,此時召回率確實高,但沒有意義。會帶來很高的假陽性。
即高P很容易降低R,高R很容易降低P。兩者需要權衡
F1 指數
因為P和R很容易此高彼低,所以F1的分子是P*R,這就使得,盲目提高P和R其中之一,并不會提高F1指數,只有當兩者都高的時候,F1才會高。第二個等號后面的式子也表明,F1指標旨在降低FP和FN(即假陽性和假陰性)兩者。
調和平均數
F1實際是P和R的調和平均數,其特點是F1受PR中值小的那個影響更大,單一的某一個值大是沒用的。
ROC 曲線(Receiver Operating Characteristic)
接收者操作特征曲線,是一種顯示分類模型在所有分類閾值下效果的圖表
此處先介紹兩個指標
1,真正例率(TPR)--即召回率
2,假正例率(FPR)
與召回率相對應的,有一個叫做特異性(Specificity)的指標
表示在所有負樣本中,模型準確找出的負樣本比例。
由此可見,
我們當然希望TPR=1,FPR=0。
此時,正負樣本均被正確分類
而ROC曲線的橫縱坐標,分別是FPR(1-Specificity),TPR
在做ROC曲線時,
首先,利用當前模型我們可以得到測試樣本x對應的預測值f(x),這f(x)可以是連續值而非輸出的標簽值(可以認為是尚未送入函數的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可以通過公式計算
但是,互相之間的推導則語焉不詳。
從實際出發,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即各類別的準確率的平均
宏觀與微觀指標(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等