在某些情況中,我們也許需要以犧牲另一個指標為代價來最大化精確率或者召回率。例如,醫(yī)院在對人們進行隨訪檢查的初步疾病篩查中,我們可能希望得到接近于100%的召回率,我們想找到所有患病的患者。如果隨訪檢查的代價不是很高,我們可以接受較低的精確率。然而,如果我們想要找到精確率和召回率的最佳組合,我們可以使用 F1 score 來對兩者進行結合,F(xiàn)1 score 是對精度和召回率的調(diào)和平均:
我們使用調(diào)和平均而不是簡單的算術平均的原因是:調(diào)和平均可以懲罰極端情況。一個具有 100%的精確率,而召回率為 0 的算法模型,這兩個指標的算術平均是 0.5,但是 F1 score 會是 0。F1 score 給了精確率和召回率相同的權重,它是通用 Fβ指標的一個特殊情況,在 Fβ中,β 可以用來給召回率和精度更多或者更少的權重。(還有其他方式可以結合精度和召回率,例如二者的幾何平均,但是 F1 score 是最常用的) 如果我們想創(chuàng)建一個具有最佳的精確度—召回率平衡的模型,那么就要嘗試將 F1 score 最大化。
F1分數(shù)同時兼顧了分類模型的精確率和召回率,可以看作是模型精確率和召回率的一種加權平均,但如果兩個算法模型,一個Precision特別高,Recall特別低,另一個Recall特別高,Precision特別低的時候,F(xiàn)1-score可能是差不多的,因此也不能僅基于F1作出選擇。
接下來,我們介紹另一種評估標準——ROC。
ROC曲線定義
ROC(Receiver Operating Characteristic)曲線總結了使用不同閾值下預測模型的召回率和虛警率之間的權衡,反映了分類器對正例的覆蓋能力和對負例的覆蓋能力之間的權衡。
橫軸:假正類率(False Postive Rate, FPR) 虛警率,劃分實例中所有負例占所有負例的比例;(1 - Specificity)
縱軸:真正類率(True Postive Rate, TPR) 召回率,也稱靈敏度(Sensitivity),代表分類器預測的正類中實際正實例占所有正實例的比例。
ROC曲線,是以FPR為橫軸、TPR為縱軸,衡量二分類算法模型性能的曲線。
那么ROC曲線上的點是如何得到的呢?分類器對分類的置信度一般設為50%(閾值),即置信度超過50%認為是正例,低于50%認為是反例。當然不是所有的分類器都能得到分類的置信度,因此不是所有的分類器都能得到ROC曲線。
依次改變這個置信度為[0.1 , 1.0],會得到一組不同的混淆矩陣,取其中的FPR和TPR值組成坐標,連接這些值,就得到ROC曲線。ROC曲線與X軸圍成的圖形面積可以作為一個綜合衡量指標,即AUC(Area Under Curve,曲線下面積),AUC越大,曲線就越凸,分類器的效果也就越好。
如下面這幅圖,圖中實線為ROC曲線,線上每個點對應一個閾值。
結合上圖,關于ROC曲線的一些特性說明:
如何繪制ROC曲線
假設已經(jīng)得出一系列樣本被劃分為正類的概率,然后按照大小排序,下圖是一個示例,圖中共有20個測試樣本,“gt_lable”一欄表示每個測試樣本真正的標簽(1表示正樣本,0表示負樣本),“Score”表示每個測試樣本屬于正樣本的概率。
接下來,我們從高到低,依次將“Score”值作為閾值,當測試樣本屬于正樣本的概率大于或等于這個閾值時,我們認為它為正樣本,否則為負樣本。舉例來說,對于圖中的第5個樣本,其“Score”值為0.78,那么樣本1,2,3,4,5都被認為是正樣本,因為它們的“Score”值都大于等于0.78,而其他樣本則都認為是負樣本。每次選取一個不同的閾值,我們就可以得到一組FPR和TPR,即ROC曲線上的一點。
我們通過不同調(diào)整閾值,得到如上20組FPR和TPR(Recall)數(shù)據(jù)。這樣一來,我們可以繪制出ROC曲線,如下圖。
AUC(Area under Curve)即ROC曲線下的面積,介于0.1和1之間。有時不同分類算法的ROC曲線存在交叉,因此很多時候用AUC值作為算法好壞的評判標準,面積越大,表示分類性能越好。另外AUC值是一個概率值,當你隨機挑選一個正樣本以及負樣本,當前的分類算法根據(jù)計算得到的Score值將這個正樣本排在負樣本前面的概率就是AUC值,AUC值越大,當前分類算法越有可能將正樣本排在負樣本前面,從而能夠更好地分類,表示分類性能越好。
為什么使用ROC和AUC評價分類器
既然已經(jīng)這么多標準,為什么還要使用ROC和AUC呢?因為ROC曲線有個很好的特性:當測試集中的正負樣本的分布變換的時候,ROC曲線能夠保持不變。在實際的數(shù)據(jù)集中經(jīng)常會出現(xiàn)樣本類不平衡,即正負樣本比例存在一定差距,而且測試數(shù)據(jù)中的正負樣本也可能隨著時間而變化。
通過ROC曲線在召回率和虛警率之間的權衡,選擇出最好的閾值范圍。在比較兩種模型的時候,如果一個被另一個完全包住,那么大的那個好。如果兩個有交叉,一般而言,面積大的那個好。
聯(lián)系客服