【机器学习】ROC曲线和PR(Precision-Recall)曲线的联系
在機器學習中,ROC(Receiver Operator Characteristic)曲線被廣泛應用于二分類問題中來評估分類器的可信度,但是當處理一些高度不均衡的數據集時,PR曲線能表現出更多的信息,發現更多的問題。
1.ROC曲線和PR曲線是如何畫出來的?
在二分類問題中,分類器將一個實例的分類標記為是或否,這可以用一個混淆矩陣來表示。混淆矩陣有四個分類,如下表:
| actual positive | actual negative | |
| predicted positive | TP | FP |
| predicted negative | FN | TN |
其中,列對應于實例實際所屬的類別,行表示分類預測的類別。
- TP(True Positive):指正確分類的正樣本數,即預測為正樣本,實際也是正樣本。
- FP(False Positive):指被錯誤的標記為正樣本的負樣本數,即實際為負樣本而被預測為正樣本,所以是False。
- TN(True Negative):指正確分類的負樣本數,即預測為負樣本,實際也是負樣本。
- FN(False?Negative):指被錯誤的標記為負樣本的正樣本數,即實際為正樣本而被預測為負樣本,所以是False。
- TP+FP+TN+FN:樣本總數。
- TP+FN:實際正樣本數。
- TP+FP:預測結果為正樣本的總數,包括預測正確的和錯誤的。
- FP+TN:實際負樣本數。
- TN+FN:預測結果為負樣本的總數,包括預測正確的和錯誤的。
這里面的概念有些繞,需要慢慢理解,/(ㄒoㄒ)/~~。以這四個基本指標可以衍生出多個分類器評價指標,如下圖:
在ROC曲線中,以FPR為x軸,TPR為y軸。FPR指實際負樣本中被錯誤預測為正樣本的概率。TPR指實際正樣本中被預測正確的概率。如下圖:
??在PR曲線中,以Recall(貌似翻譯為召回率或者查全率)為x軸,Precision為y軸。Recall與TPR的意思相同,而Precision指正確分類的正樣本數占總正樣本的比例。如下圖:
??繪制ROC曲線和PR曲線都是選定不同閾值,從而得到不同的x軸和y軸的值,畫出曲線。例如,一個分類算法,找出最優的分類效果,對應到ROC空間中的一個點。通常分類器輸出的都是score,如SVM、神經網絡等,有如下預測效果:
| no. | True | Hyp(0.5)???????????? | ?Hyp(0.6)?????????? | ??Score |
| 1 | p | Y | Y | 0.99999 |
| 2 | p | Y | Y | 0.99999 |
| 3 | p | Y | Y | 0.99993 |
| 4 | p | Y | Y | 0.99986 |
| 5 | p | Y | Y | 0.99964 |
| 6 | p | Y | Y | 0.99955 |
| 7 | n | Y | Y | 0.68139 |
| 8 | n | Y | N | 0.50961 |
| 9 | n | N | N | 0.48880 |
| 10 | n | N | ??N | 0.44951 |
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)。同理得到不同閾下的坐標,即可繪制出曲線
| 閾值 | TPR | FPR | Recall | Precision | ROC坐標 | PR坐標 |
| 0.5 | 1 | 0.5 | 1 | 0.75 | (0.5,1) | (1,0.75) |
| 0.6 | 1 | 0.25 | 1 | 0.86 | (0.25,1) | (1,0.86) |
2.ROC曲線和PR曲線的關系
在ROC空間,ROC曲線越凸向左上方向效果越好。與ROC曲線左上凸不同的是,PR曲線是右上凸效果越好。
ROC和PR曲線都被用于評估機器學習算法對一個給定數據集的分類性能,每個數據集都包含固定數目的正樣本和負樣本。而ROC曲線和PR曲線之間有著很深的關系。
??定理1:對于一個給定的包含正負樣本的數據集,ROC空間和PR空間存在一一對應的關系,也就是說,如果recall不等于0,二者包含完全一致的混淆矩陣。我們可以將ROC曲線轉化為PR曲線,反之亦然。
定理2:對于一個給定數目的正負樣本數據集,一條曲線在ROC空間中比另一條曲線有優勢,當且僅當第一條曲線在PR空間中也比第二條曲線有優勢。(這里的“一條曲線比其他曲線有優勢”是指其他曲線的所有部分與這條曲線重合或在這條曲線之下。)
證明過程見文章《The Relationship Between Precision-Recall and ROC Curves》
當正負樣本差距不大的情況下,ROC和PR的趨勢是差不多的,但是當負樣本很多的時候,兩者就截然不同了,ROC效果依然看似很好,但是PR上反映效果一般。解釋起來也簡單,假設就1個正例,100個負例,那么基本上TPR可能一直維持在100左右,然后突然降到0.如圖,(a)(b)分別為正負樣本1:1時的ROC曲線和PR曲線,二者比較接近。而(c)(d)的正負樣本比例為1:1,這時ROC曲線效果依然很好,但是PR曲線則表現的比較差。這就說明PR曲線在正負樣本比例懸殊較大時更能反映分類的性能。
?
3.AUC
AUC(Area Under Curve)即指曲線下面積占總方格的比例。有時不同分類算法的ROC曲線存在交叉,因此很多時候用AUC值作為算法好壞的評判標準。面積越大,表示分類性能越好。
?
轉載請注明出處fullstackdevel.com:SEAN是一只程序猿 ? ROC曲線和PR(Precision-Recall)曲線的聯系
總結
以上是生活随笔為你收集整理的【机器学习】ROC曲线和PR(Precision-Recall)曲线的联系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【风控建模】spark大数据金融风控模型
- 下一篇: 【个人总结】知识晶体的前中后台