roc曲线怎么绘制_ROC曲线和PR曲线
在機(jī)器學(xué)習(xí)中,ROC曲線被廣泛應(yīng)用于二分類問題中來評估分類器的可信度,當(dāng)處理一些高度不均衡的數(shù)據(jù)集時,PR曲線能表現(xiàn)出更多的信息。
在二分類問題中,分類器將一個實例的分類標(biāo)記為正例還是負(fù)例,這可以用一個混淆矩陣來表示
TP:指正確分類成為正的樣本數(shù),實際為正,預(yù)測為正
FP:指錯誤分類為正的樣本數(shù),實際為負(fù),預(yù)測為正
FN:指錯誤分類為負(fù)的樣本數(shù),實際為正,預(yù)測為負(fù)
TN:指正確分類為負(fù)的樣本數(shù),實際為負(fù),預(yù)測為負(fù)
TP+FP+TN+FN 樣本總數(shù)
TP + FN 實際正樣本數(shù)
TP+FP 預(yù)測為正的樣本數(shù),包括預(yù)測正確的預(yù)測錯誤的
FP+TN 實際負(fù)樣本數(shù)
TN+FN 預(yù)測為負(fù)的樣本數(shù),包括預(yù)測正確的預(yù)測錯誤的
在ROC曲線中,以FPR為x軸,TPR為y軸,FPR指實際負(fù)樣本中被錯誤預(yù)測為正樣本的概率。TPR指實際正樣本中被預(yù)測正確的概率。如下圖:
在PR曲線中,以Recall(貌似翻譯為召回率或者查全率)為x軸,Precision為y軸。Recall與TPR的意思相同,而Precision指正確分類的正樣本數(shù)占總正樣本的比例。如下圖:
繪制ROC曲線和PR曲線都是選定不同閾值,從而得到不同的x軸和y軸的值,畫出曲線。例如,一個分類算法,找出最優(yōu)的分類效果,對應(yīng)到ROC空間中的一個點。通常分類器輸出的都是score,如SVM、神經(jīng)網(wǎng)絡(luò)等,有如下預(yù)測效果:
True表示實際樣本屬性,Hyp表示預(yù)測結(jié)果樣本屬性,第4列即是Score,Hyp的結(jié)果通常是設(shè)定一個閾值,比如上表Hyp(0.5)和Hyp(0.6)就是閾值為0.5和0.6時的結(jié)果,Score>閾值為正樣本,小于閾值為負(fù)樣本,這樣只能算出一個ROC值,
當(dāng)閾值為0.5時,TPR=6/(6+0)=1,FPR=FP/(FP+TN)=2/(2+2)=0.5,得到ROC的一個坐標(biāo)為(0.5,1);Recall=TPR=1,Precision=6/(6+2)=0.75,得到一個PR曲線坐標(biāo)(1,0.75)。同理得到不同閾下的坐標(biāo),即可繪制出曲線
在ROC空間,ROC曲線越凸向左上方向效果越好。與ROC曲線左上凸不同的是,PR曲線是右上凸效果越好。
ROC和PR曲線都被用于評估機(jī)器學(xué)習(xí)算法對一個給定數(shù)據(jù)集的分類性能,每個數(shù)據(jù)集都包含固定數(shù)目的正樣本和負(fù)樣本。而ROC曲線和PR曲線之間有著很深的關(guān)系。
定理1:對于一個給定的包含正負(fù)樣本的數(shù)據(jù)集,ROC空間和PR空間存在一一對應(yīng)的關(guān)系,也就是說,如果recall不等于0,二者包含完全一致的混淆矩陣。我們可以將ROC曲線轉(zhuǎn)化為PR曲線,反之亦然。
定理2:對于一個給定數(shù)目的正負(fù)樣本數(shù)據(jù)集,一條曲線在ROC空間中比另一條曲線有優(yōu)勢,當(dāng)且僅當(dāng)?shù)谝粭l曲線在PR空間中也比第二條曲線有優(yōu)勢。(這里的“一條曲線比其他曲線有優(yōu)勢”是指其他曲線的所有部分與這條曲線重合或在這條曲線之下。)
當(dāng)正負(fù)樣本差距不大的情況下,ROC和PR的趨勢是差不多的,但是當(dāng)負(fù)樣本很多的時候,兩者就截然不同了,ROC效果依然看似很好,但是PR上反映效果一般。解釋起來也簡單,假設(shè)就1個正例,100個負(fù)例,那么基本上TPR可能一直維持在100左右,然后突然降到0.如圖,(a)(b)分別為正負(fù)樣本1:1時的ROC曲線和PR曲線,二者比較接近。而(c)(d)的正負(fù)樣本比例為1:1,這時ROC曲線效果依然很好,但是PR曲線則表現(xiàn)的比較差。這就說明PR曲線在正負(fù)樣本比例懸殊較大時更能反映分類的性能。
AUC(Area Under Curve)即指曲線下面積占總方格的比例。有時不同分類算法的ROC曲線存在交叉,因此很多時候用AUC值作為算法好壞的評判標(biāo)準(zhǔn)。面積越大,表示分類性能越好。
總結(jié)
以上是生活随笔為你收集整理的roc曲线怎么绘制_ROC曲线和PR曲线的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android studio 2.3 i
- 下一篇: java的迭代器类中有哪些类_java中