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