转自:http://blog.csdn.net/foreyang00/article/details/8208408
多分类问题中每一类的Precision-Recall Curve曲线以及ROC的Matlab画法
这两天写论文中,本来设计的是要画这个Precision-Recall Curve的,因为PRC是从信息检索中来的,而且我又做的类似一个检索,所以要画这个图,但是我靠,竟然发现不好画,找了很多资料等。最后也没画好,多么重要好看实用的图啊,可惜了。
1、首先得分为正负两类,多类问题真对每一类都可以映射过去
2、按照决策值(分类问题每一个样本肯定会有一个支持分类的概率或者置信度等等,像是libsvm的dec_values的矩阵),按照从小到大的顺序进行排序
3、然后分别计算全部样本、全本样本-1、全部样本-2、...........、一直计算完毕,每一次都会有查全率查准率,就可以曲线了,这里我说的很粗糙,详细的可以查看我的代码,当然也有函数参考的别人的,也做了说明。
| | correct result / classification | |
| | E1 | E2 |
obtained | E1 | tp | fp |
E2 | fn | tn |
------------------
我的计算这些东西的代码包:
PG_Curve.zip: Matlab code for computing and visualization: Confusion Matrix, Precision/Recall Curve, ROC, Accuracy, F-Measure etc. for Classification.
红色的跳跃的就是最原始的曲线,绿色的是一个人的平滑算法。