混淆矩阵
来源:互联网 发布:java源码分析工具 编辑:程序博客网 时间:2024/04/30 07:42
论文中咱们会经常看见一类图,比如说多类别文类问题,那么每一个类别分到其他类别都有一些数据,但是分到自己类别的毕竟多,这样计算百分比之后就形成了一个矩阵,如果分类正确率高的话,那么对角线上的元素的值,也就是自己到自己的那一部分,value就大。
我最近也在做多分类问题,要画这样的图,但是发现确实很少有代码,自己画的确实不好看,还牵扯到值的显示和x轴标签的旋转问题,所以一直自己也没空仔细研究,就去stackoverflow问了一下,马上就得到了答案,stackoverflow是个好站点啊,关于计算机领域等的问答系统。很多牛人在上面。
下面我整理了一下代码,用的答案是gnovice的,分享出来,加入函数的输入就是一个矩阵了。
function
draw_cm(mat,tick)
%%
% 作者: 丕子 shamoxia.com
% 参数:mat-矩阵;tick-要在坐标轴上显示的label向量,例如{'label_1','label_2'...}
%
%%
imagesc(mat);
%# 绘彩色图
colormap(flipud(gray));
%# 转成灰度图,因此高value是渐黑色的,低value是渐白的
num_class=size(mat,1);
textStrings = num2str(mat(:),
'%0.2f'
);
textStrings = strtrim(cellstr(textStrings));
[x,y] = meshgrid(1:num_class);
hStrings = text(x(:),y(:),textStrings(:),
'HorizontalAlignment'
,
'center'
);
midValue = mean(get(gca,
'CLim'
));
textColors = repmat(mat(:) > midValue,1,3);
%改变test的颜色,在黑cell里显示白色
set(hStrings,{
'Color'
},num2cell(textColors,2));
%# Change the text colors
set(gca,
'xticklabel'
,tick,
'XAxisLocation'
,
'top'
);
rotateXLabels(gca, 45 );
set(gca,
'yticklabel'
,tick);
里面的代码rotateXLabels(gca, 45 );是用来对x轴的label进行旋转的,防止因为太长而重叠,用的是Ben Tordoff写的,自己可以去下载这个function,这里我就不列出来了。
举个例子吧:
clc;
clear;
figure(1);
mat = rand(6);
draw_cm(mat,{
'label_1'
,
'label_2'
,
'label_3'
,
'label_4'
,
'label_5'
,
'label_6'
});
出来的图:
我把这个用Matlab通过分类的label计算混淆矩阵Confusion Matrix并且显示的函数做在了我的代码包中,有用的可以下载:
PG_Curve.zip: Matlab code for computing and visualization: Confusion Matrix, Precision/Recall Curve, ROC, Accuracy, F-Measure etc. for Classification.
只要一句代码就行了,方便。
[confusion_matrix]=compute_confusion_matrix(predict_label,num_in_class,name_class);
- 混淆矩阵
- 混淆矩阵
- 混淆矩阵
- 混淆矩阵
- 混淆矩阵
- 混淆矩阵
- 混淆矩阵
- 混淆矩阵
- 混淆矩阵
- 混淆矩阵
- 混淆矩阵
- 【混淆矩阵】matlab画混淆矩阵
- 混淆矩阵 Using Matlab
- 简单理解混淆矩阵
- 混淆矩阵ConfusionMatrix
- 混淆矩阵理解
- weka中的混淆矩阵
- R:混淆矩阵
- web前端脚本编程(一)--JavaScript脚本基础知识
- 对于linux下system()函数的深度理解(
- MySql简单doc操作
- 《看见》读书笔记
- iOS应用中如何跳转至App Store指定应用
- 混淆矩阵
- LeetCode 107 Binary Tree Level Order Traversal II(二叉树的层级顺序遍历2)(*)
- Android开发笔记--操纵字符串中的字符
- xampp中production的php.ini与默认的有何不同
- 用于将阿拉伯数字转成中文数字
- win8.1 Offline Files、Device Association Service和Network Connections
- 选择角点
- Apple 一个我越发看不懂的公司
- 【java web】--ojdbc导入xml数据