效能評估之PR曲線與ROC曲線

2021-10-10 09:34:38 字數 2376 閱讀 6682

李_穎biscuit

12019.07.14 10:36:58

字數 1,630

閱讀 17,681

冒泡!又是週末啦~小李上線啦!放假癱在家裡做鹹魚真的好快落誒,但也要堅持輸出。今天主要敘述在二分類問題中效能評估的兩個曲線。

————————————————————

pr曲線

pr曲線實則是以precision(精準率)和recall(召回率)這兩個為變數而做出的曲線,其中recall為橫座標,precision為縱座標。

那麼問題來了,什麼是精準率?什麼是召回率?這裡先做乙個解釋。

在二分類問題中,分類器將乙個例項的分類標記為是或否,可以用乙個混淆矩陣來表示,如下圖所示。

注:把正例正確地分類為正例,表示為tp(true positive),把正例錯誤地分類為負例,表示為fn(false negative)。

把負例正確地分類為負例,表示為tn(true negative), 把負例錯誤地分類為正例,表示為fp(false positive)。

【舉個栗子:a是只貓(正例),b是只倉鼠(負例),a在二分類中被劃分為貓則為tp,被劃分為倉鼠則為fn。b在二分類中被劃分為倉鼠則為tn,被劃分為貓則為。】

從混淆矩陣可以得出精準率與召回率:precision = tp/(tp + fp), recall = tp/(tp +fn)(注意:分子相同。)

接下來補充乙個重點:

一條pr曲線要對應乙個閾值。通過選擇合適的閾值,比如50%,對樣本進行劃分,概率大於50%的就認為是正例,小於50%的就是負例,從而計算相應的精準率和召回率。

舉個例子如下:(true這列表示正例或者負例,hyp這列表示閾值0.5的情況下,概率是否大於0.5)

那麼根據這個**我們可以計算:tp=6,fn=0,fp=2,tn=2。故recall=6/(6+0)=1,precison=6/(6+2)=0.75,那麼得出座標(1,0.75)。同理得到不同閾下的座標,即可繪製出曲線。

pr曲線如下:

如果乙個學習器的p-r曲線被另乙個學習器的p-r曲線完全包住,則可斷言後者的效能優於前者,例如上面的a和b優於學習器c。但是a和b的效能無法直接判斷,我們可以根據曲線下方的面積大小來進行比較,但更常用的是平衡點或者是f1值。平衡點(bep)是p=r時的取值,如果這個值較大,則說明學習器的效能較好。而f1 = 2 * p * r /( p + r ),同樣,f1值越大,我們可以認為該學習器的效能較好。

部分資料參考:二戰周志華《機器學習》-pr曲線和roc曲線

p-r曲線深入理解

roc曲線

有了前面的pr的鋪墊,roc曲線就會更好理解了。

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

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

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

我們可以發現:tpr=recall。

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

下圖為roc曲線示意圖,因現實任務中通常利用有限個測試樣例來繪製roc圖,因此應為無法產生光滑曲線,如右圖所示。

繪圖過程:給定m個正例子,n個反例子,根據學習器**結果進行排序,先把分類閾值設為最大,使得所有例子均**為反例,此時tpr和fpr均為0,在(0,0)處標記乙個點,再將分類閾值依次設為每個樣例的**值,即依次將每個例子劃分為正例。設前乙個座標為(x,y),若當前為真正例,對應標記點為(x,y+1/m),若當前為假正例,則標記點為(x+1/n,y),然後依次連線各點。

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的簡單介紹。

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

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

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

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

PR曲線與ROC曲線

pr曲線中的p代表的是precision 精準率 r代表的是recall 召回率 其代表的是精準率與召回率的關係,一般情況下,將recall設定為橫座標,precision設定為縱座標。在機器學習中,分類器往往輸出的不是類別標號,而是屬於某個類別的概率值,根據分類器的 結果從大到小對樣例進行排序,排...

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...