多分类问题中每一类的Precision-Recall Curve曲线以及ROC的Matlab画法
2016-04-03 14:22
1391 查看
这两天写论文中,本来设计的是要画这个Precision-Recall Curve的,因为PRC是从信息检索中来的,而且我又做的类似一个检索,所以要画这个图,但是我靠,竟然发现不好画,找了很多资料等。最后也没画好,多么重要好看实用的图啊,可惜了。
今天就花了一点功夫,专门为自己弄了个工具包,用来计算多分类问题中的Precision-Recall Curve、混淆矩阵Confusion Matrix并且进行可视化输出。
不过Precision-Recall Curve对于每一类的画法还是很有讲究的,我们知道对于二类问题,像是检索中的问题,最后的查全率、查准率基本都是最后计算一对值就行了,但是就一对值,一个点是画不出曲线来的,所以在实际的曲线过程中,是这样的:
1、首先得分为正负两类,多类问题真对每一类都可以映射过去
2、按照决策值(分类问题每一个样本肯定会有一个支持分类的概率或者置信度等等,像是libsvm的dec_values的矩阵),按照从小到大的顺序进行排序
3、然后分别计算全部样本、全本样本-1、全部样本-2、...........、一直计算完毕,每一次都会有查全率查准率,就可以曲线了,这里我说的很粗糙,详细的可以查看我的代码,当然也有函数参考的别人的,也做了说明。
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、混淆矩阵Confusion Matrix并且进行可视化输出。
不过Precision-Recall Curve对于每一类的画法还是很有讲究的,我们知道对于二类问题,像是检索中的问题,最后的查全率、查准率基本都是最后计算一对值就行了,但是就一对值,一个点是画不出曲线来的,所以在实际的曲线过程中,是这样的:
1、首先得分为正负两类,多类问题真对每一类都可以映射过去
2、按照决策值(分类问题每一个样本肯定会有一个支持分类的概率或者置信度等等,像是libsvm的dec_values的矩阵),按照从小到大的顺序进行排序
3、然后分别计算全部样本、全本样本-1、全部样本-2、...........、一直计算完毕,每一次都会有查全率查准率,就可以曲线了,这里我说的很粗糙,详细的可以查看我的代码,当然也有函数参考的别人的,也做了说明。
correct result / classification | |||
---|---|---|---|
E1 | E2 | ||
obtained result / classification | E1 | tp (true positive) | fp (false positive) |
E2 | fn (false negative) | tn (true negative) |
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
相关文章推荐
- 多分类问题中混淆矩阵(Confusion Matrix)的Matlab画法
- MATLAB笔记
- matlab matconvnet
- matlab多变量牛顿方法求解非线性方程组
- 数据挖掘-matlab实现基于MovieLens数据集的协同过滤电影推荐系统
- 初学决策树之用Matlab工具箱函数实现性别识别
- matlab之simulink仿真入门
- matlab下利用K-Means进行图像分类
- 用matlab实现视频的空间滤波和直方图均衡化
- DES算法的matlab实现
- matlab练习程序(结构张量structure tensor)
- 【matlab】:颜色模型的分类及颜色模型的转换简介
- ubuntu系统安装Matlab2014a
- Matlab中三维直方图的显示方法
- Matlab函数(二)
- Matlab函数(一)
- Matlab中以三维的方式显示灰度图像
- 【matlab】:matlab中不断的出现计算过程怎么办
- MATLAB中imshow()和image()
- 【matlab】:matlab中如何取整?