淺談ROC與PR曲線-分類器閾值確定

今天早上看了一下閾值的問題,後來來了ROC受試者工作特徵,發現可以測試多組數據,然後得到每個閾值下的真正例(True positive)和假正例(False positive),發現可以用這個曲線進行統計從而得到每個閾值的情況下分類器的性能,並且進行擬合,最後找到這個均衡點,即ROC曲線與y=-x+1的交點,這樣可以做到真正例最多,假正例最少。。。



ROC曲線

對於ROC曲線,其有一個很好的特性:當測試集中的正負樣本的分佈變換的時候,ROC曲線能夠保持不變。在實際的數據集中經常會出現樣本類不平衡,即正負樣本比例差距較大,而且測試數據中的正負樣本也可能隨着時間變化。下圖是ROC曲線和Presision-Recall曲線的對比:


a,c爲ROC曲線,b,d爲precision-recall曲線。(a)和(b)展示的是分類其在原始測試集(正負樣本分佈平衡)的結果,(c)(d)是將測試集中負樣本的數量增加到原來的10倍後,分類器的結果,可以明顯的看出,ROC曲線基本保持原貌,而Precision-Recall曲線變化較大。

而P-R曲線是precision-recall查準率-查重率曲線,其標準圖爲下圖所示:



P-R曲線

在兩個曲線的交點處取得最佳閾值。

下午開會結束回來,發現了一 個問題!隨手打開之前寫好的程序,想再看看效果,意想不到的事情出現了,居然運行不了了!main.o發生錯誤! 這是個什麼鬼!

我查了一下,main.o是個目標文件,是二進制文件,在還沒轉換成exe前的一個目標文件。而這個錯誤又是個什麼問題呢,貌似是編譯器的路徑問題,沒有成功編譯啊。後來回想起來,昨天一起的同學在電腦上好像在搗鼓什麼編譯器之類的,大概就是那個時候就弄出事了吧,這樣還能轉換回去嗎。。。誰也不知道了。晚上嘗試着修改了工程的pro文件和makefile文件,似乎也不能解決問題。

倒騰了一晚上想恢復回來,還是沒有成功!明天只能繼續了,是不是看我這幾天沒事幹,上天給我加了一難。頗有種九九八十一難,還差一難的感覺。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章