PR曲線與ROC曲線

2021-10-22 14:25:01 字數 3359 閱讀 9770

pr曲線中的p代表的是precision(精準率),r代表的是recall(召回率),其代表的是精準率與召回率的關係,一般情況下,將recall設定為橫座標,precision設定為縱座標。

在機器學習中,分類器往往輸出的不是類別標號,而是屬於某個類別的概率值,根據分類器的**結果從大到小對樣例進行排序,排在前面的是學習器認為最可能是正例的樣本,排在後面的是學習器認為最不可能是正例的樣本,可以選取不同的閾值或者按此順序逐個把樣本作為正例進行**,則每次可計算當前的p、r值,以p為y軸,以r為x軸,可以畫出p-r曲線。

舉例:

inst#是樣本序號,圖中有20個樣本。class是ground truth 標籤,p是positive樣本(正例),n當然就是negative(負例) score是我的分類器對於該樣本屬於正例的可能性的打分。因為一般模型輸出的不是0,1的標註,而是小數,相當於置信度。

然後設定乙個從高到低的閾值t,大於等於閾值t的被我正式標註為正例,小於閾值t的被我正式標註為負例。

顯然,我設定n個閾值,我就能得到n種標註結果,評判我的模型好不好使。

如上圖:真實情況正例p反例n各有10個。

0.9作為閾值(大於等於0.9為正例,小於0.9為反例),此時tp=1,fp=0,fn=9,故p=1,r=0.1。

用0.8作為閾值,此時tp=2,fp=0,fn=8,p=1, r=0.2。

用0.7作為閾值,此時tp=2,fp=1,fn=7,p=0.67,r=0.2。

用0.6作為閾值,此時tp=3,fp=1,fn=6,p=0.75,r=0.3。

以此類推。。。

最後得到一系列p、r值序列,就畫出p-r曲線(示意圖,不對應上面資料):

顯然,p-r 曲線越靠近右上角效能越好。

如果乙個學習器的p-r曲線被另乙個學習器的p-r曲線完全包住,則可斷言後者的效能優於前者,例如上面的a和b優於學習器c。但是a和b的效能無法直接判斷,我們可以根據曲線下方的面積大小來進行比較,但更常用的是平衡點或者是f1-score

平衡點(bep)是p=r時的取值,如果這個值較大,則說明學習器的效能較好。

f1 = 2 * p * r /( p + r ),f1-score綜合考慮了p值和r值,是精準率和召回率的調和平均值, 同樣,f1值越大,我們可以認為該學習器的效能較好。

在roc曲線中,橫軸是假正例率(fpr),縱軸是真正例率(tpr)

(1)真正類率(true postive rate),代表分類器**的正類中實際正例項佔所有正例項的比例。

(2)負正類率(false postive rate),代表分類器**的正類中實際負例項佔所有負例項的比例。

我們可以發現:tpr=recall

roc曲線也需要相應的閾值才可以進行繪製,原理同上的pr曲線。

用0.9作為閾值,此時tp=1,fp=0,fn=9,tn=10,故tpr=0.1,fpr=0。

用0.8作為閾值,此時tp=2,fp=0,fn=8,tn=10,故tpr=0.2,fpr=0。

用0.7作為閾值,此時tp=2,fp=1,fn=8,tn=9,故tpr=0.2,fpr=0.1。

用0.6作為閾值,此時tp=3,fp=1,fn=7,tn=9,故tpr=0.3,fpr=0.1。

以此類推。。。

最後的roc曲線如下圖:

roc曲線圖中的四個點

第乙個點:(0,1),即fpr=0, tpr=1,這意味著fn=0,並且fp=0。這是完美的分類器,它將所有的樣本都正確分類。

第二個點:(1,0),即fpr=1,tpr=0,類似地分析可以發現這是乙個最糟糕的分類器,因為它成功避開了所有的正確答案。

第三個點:(0,0),即fpr=tpr=0,即fp=tp=0,可以發現該分類器**所有的樣本都為負樣本(negative)。

第四個點:(1,1),分類器實際上**所有的樣本都為正樣本。經過以上的分析,roc曲線越接近左上角,該分類器的效能越好。

乙個對比:

這裡補充一下auc的簡單介紹。

auc (area under curve):roc曲線下的面積,介於0.1和1之間,作為數值可以直觀的評價分類器的好壞,值越大越好。

auc = 1,是完美分類器,採用這個**模型時,存在至少乙個閾值能得出完美**。絕大多數**的場合,不存在完美分類器。

0.5 < auc < 1,優於隨機猜測。這個分類器(模型)妥善設定閾值的話,能有**價值。

auc = 0.5,跟隨機猜測一樣(例:丟銅板),模型沒有**價值

pr曲線和roc曲線都能評價分類器的效能。如果分類器a的pr曲線或roc曲線包圍了分類器b對應的曲線,那麼分類器a的效能好於分類器b的效能。

pr曲線和roc曲線有什麼聯絡和不同:

相同點:

首先從定義上pr曲線的r值是等於roc曲線中的tpr值。

都是用來評價分類器的效能的。

不同點:

roc曲線是單調的而pr曲線不是(根據它能更方便調參),可以用auc的值得大小來評價分類器的好壞(是否可以用pr曲線圍成面積大小來評價呢?)。

正負樣本的分布失衡的時候,roc曲線保持不變,而pr曲線會產生很大的變化。

(a)(b)分別是正反例相等的時候的roc曲線和pr曲線

(c)(d)分別是十倍反例一倍正例的roc曲線和pr曲線

可以看出,在正負失衡的情況下,從roc曲線看分類器的表現仍然較好(圖c),然而從pr曲線來看,分類器就表現的很差。

事實情況是分類器確實表現的不好(分析過程見知乎 qian lv 的回答),是roc曲線欺騙了我們。

參考(感謝)

ROC曲線 PR曲線

在 的結果分析中,roc和pr曲線是經常用到的兩個有力的展示圖。1.roc曲線 roc曲線 receiver operating characteristic 是一種對於靈敏度進行描述的功能影象。roc曲線可以通過描述真陽性率 tpr 和假陽性率 fpr 來實現。由於是通過比較兩個操作特徵 tpr和...

ROC曲線與PR曲線對比

tpr tpp tpt p fn tpr frac frac tpr pt p t p fn tp fpr fpn fpf p tn fpr frac frac fpr nf p f p tn fp roc曲線的縱座標為tpr,真正率,其實也是召回率。分母為所有實際正樣本。roc曲線的縱座標為fpr...

P R曲線和ROC曲線

混淆矩陣又稱錯誤矩陣,指每個類別下,模型 結果的類別和數量在乙個矩陣中展示出來。真實標籤 為正 為負 真實為正 tpfn 真實為負 fptn 又稱為 tpr true positive rate 或者 敏感度sensitivity 通俗理解 真實為正的樣本中識別為正的佔比。t pr tpt p fn...