多分类问题中每一类的Precision-Recall Curve曲线以及ROC的Matlab画法
這兩天寫論文中,本來設計的是要畫這個Precision-Recall Curve的,因為PRC是從信息檢索中來的,而且我又做的類似一個檢索,所以要畫這個圖,但是我靠,竟然發現不好畫,找了很多資料等。最后也沒畫好,多么重要好看實用的圖啊,可惜了。
今天就花了一點功夫,專門為自己弄了個工具包,用來計算多分類問題中的Precision-Recall Curve、混淆矩陣Confusion Matrix并且進行可視化輸出。
不過Precision-Recall Curve對于每一類的畫法還是很有講究的,我們知道對于二類問題,像是檢索中的問題,最后的查全率、查準率基本都是最后計算一對值就行了,但是就一對值,一個點是畫不出曲線來的,所以在實際的曲線過程中,是這樣的:
1、首先得分為正負兩類,多類問題真對每一類都可以映射過去
2、按照決策值(分類問題每一個樣本肯定會有一個支持分類的概率或者置信度等等,像是libsvm的dec_values的矩陣),按照從小到大的順序進行排序
3、然后分別計算全部樣本、全本樣本-1、全部樣本-2、...........、一直計算完畢,每一次都會有查全率查準率,就可以曲線了,這里我說的很粗糙,詳細的可以查看我的代碼,當然也有函數參考的別人的,也做了說明。
| tp (true positive) | fp (false positive) |
| fn (false negative) | tn (true negative) |
Precision and recall are then defined as:
Recall in this context is also referred to as the True Positive Rate, other related measures used in classification include True Negative Rate and Accuracy:[1]. True Negative Rate is also called Specificity.
------------------
我的計算這些東西的代碼包:
PG_Curve.zip: Matlab code for computing and visualization: Confusion Matrix, Precision/Recall Curve, ROC, Accuracy, F-Measure etc. for Classification.
紅色的跳躍的就是最原始的曲線,綠色的是一個人的平滑算法。
from:?http://www.zhizhihu.com/html/y2010/2447.html
總結
以上是生活随笔為你收集整理的多分类问题中每一类的Precision-Recall Curve曲线以及ROC的Matlab画法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多分类问题中混淆矩阵(Confusion
- 下一篇: 使用FLANN进行特征点匹配