ROC曲線繪制


ROC 曲線繪制

個人的淺顯理解:1.ROC曲線必須是針對連續值輸入的,通過選定不同的閾值而得到光滑而且連續的ROC曲線,故通常應用於Saliency算法評價中,因為可以選定0~255中任意的值進行閾值分割,從而得到ROC曲線;

              2.對於圖像分割算法的評價不適合用ROC曲線進行評價,除非能夠得到連續值,而不是二值圖像;圖像分割算法適合采用准確率、召回率、F1指標的平均值進行評價。

              3.針對已經分割好的二值圖像:分割出了一系列的分割二值圖,除非分割的結果足夠大,否則很難得到良好的ROC曲線,一般都是波動很大的,如下圖所示。

      

    matlab中已經有現成的針對分類的ROC曲線繪制函數。

目前理解的並不透徹,以下資料可供進一步學習,記錄以備忘:

http://blog.sina.com.cn/s/blog_4cf8aad30100gt1g.html

http://www.ilovematlab.cn/thread-62962-1-1.html

http://blog.csdn.net/fuhpi/article/details/8813455

論文:The relationship between Precision-Recall and ROC curves.pdf

 

matlab中plotroc函數的用法說明:

ROC曲線是通用的分類器評價工具,matlab函數中自帶了繪制該曲線的函數plotroc。

plotroc函數的原型為:plotroc(targets, outputs)

其中參數targets是一個矩陣,代表測試集,每一列表示一個測試樣本的標簽

如果有兩類樣本,比如第1,2,5個樣本屬於第1類,第3,4,6個樣本屬於第2類....則targets應為:

1 1 0 0 1 0 ...

0 0 1 1 0 1 ...

如果只有一類樣本,包含了負樣本,則只要一行,用1表示正樣本,0表示負樣本即可,比如targets為:

1 0 1 1 0 0 0 0 1 ...

 

參數outputs也是一個矩陣,代表分類結果,同樣每一列表示一個測試樣本的分類結果

同樣如果有兩類樣本,則應有兩個分類器,每一列記錄了每個測試樣本在兩個分類器上的得分,此時outputs為:

0.8 0.85 0.2 0.75 0.21 ...

0.8 0.01 0.9 0.23 0.67 ...

如果只有一類,則outputs只有一行,如:

0.8 0.6 0.8 0.7 0.05 0.3 0.03 ...

注意,得分必須在[0, 1]的區間內,可以自己規約一下。

我們將相應的測試標簽targets和對應的分類得分outputs輸入plotroc中就可以繪制出相應的ROC曲線了。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM