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