matlab 分类学习工具箱 Classification Learner的使用及导出其生成的图,混淆矩阵confusion matrix的画法
声明:转自https://blog.csdn.net/qq_27914913/article/details/71436838
https://blog.csdn.net/evil_xue/article/details/89765890
在matlab中,既有各种分类器的训练函数,比如“fitcsvm”,也有图形界面的分类学习工具箱,里面包含SVM、决策树、Knn等各类分类器,使用非常方便。接下来讲讲如何使用。
一、使用
1、启动:
点击“应用程序”,在面板中找到“Classification Learner”图标点击即启动,也可以在命令行输入“classificationLearner”,回车,也可启动。如下图:
2、导入数据:
3、选择分类器:
4、训练结果:
点击“Export Model”可以将模型导出到工作空间,这样就可以利用模型来测试新的数据。也可以导出为代码,方便研究。
当后续需要处理的数据量比较大或者需要重复使用时,建议导出代码。
5、样本预测
模型导出到workespace中,命令窗口会显示一下提示信息
这里的T应该值得是一个类,需要自己定义,如果不需要立即保存,可以用另外一种方式进行样本分类预测。
二、导出 Classification Learner生成的图
hFigs = findall(groot,'type','figure');
导出图像句柄,再生成图,可以使用saveas
来导出pdf或者eps等格式的图片,
saveas(hFigs,'Confusion Matrix.pdf');
- 注意:如果在工作区出现了一个2X1或者3X1的figure hfigs,是因为界面中同时打开了2张或者3张图,需要将其余不需要的图关闭,仅保留需要处理的一张图即可。对于生成的roc曲线图、Confusion Matrix图处理方式相同。
- 另外,saveas后出现这种情况:图形对于页面而言太大,将被剪切,是因为:
- saveas默认是以a4的大小输出的,可以调整图为a3,或者a2,a1,a0,即在saveas之前,输入
set(hFigs,'PaperType','a3');
感谢https://blog.csdn.net/yq_forever/article/details/85264920#comments的分享。
但现在仍有一个问题,对于39×39的大型矩阵,只有颜色显示,无法显示具体的结果,是否可以将混淆矩阵中计算得到的具体结果导出?如果直接使用工具箱生成的code来计算结果,得到是所有结果的平均值,也无法获取中间过程结果。
1、以下是matlab中给出的混淆矩阵计算方式
%Compute the confusion matrix using stratified 10-fold cross validation:
clear;
load('fisheriris');
y = species;
X = meas;
order = unique(y); % Order of the group labels
cp = cvpartition(y,'k',10); % Stratified cross-validation
f = @(xtr,ytr,xte,yte)confusionmat(yte,...
classify(xte,xtr,ytr),'order',order);
cfMat = crossval(f,X,y,'partition',cp);
cfMat = reshape(sum(cfMat),3,3)
2、常规混淆矩阵的画法,可以,- 保存混淆矩阵文本文件 - matlab中使用imagesc命令
例如:[mat,order] = confusionmat(actual,predicted);%生成混淆矩阵,或者rand(10,10) %以一个随机生成的矩阵为例
imagesc(mat);%生成图查看矩阵的结果,可以添加colorbar给出图例
colormap(flipud(gray)); %或者将彩色的图转化为黑白灰的图,higher values are black and lower values are white
but无法获得predicted
注:还可以直接使用plotconfusion函数绘制混淆矩阵,函数的3种用法
plotconfusion(targets,outputs)
plotconfusion(targets,outputs,name)
plotconfusion(targets1,outputs1,name1,targets2,outputs2,name2,...,targetsn,outputsn,namen)
详细参考官方解释https://ww2.mathworks.cn/help/deeplearning/ref/plotconfusion.html?tdsourcetag=s_pcqq_aiomsg
关于混淆矩阵画法的有很多,具体参考:
https://blog.csdn.net/dujiahei/article/details/80789945
https://blog.csdn.net/dujiahei/article/details/80789945
https://blog.csdn.net/xuyingjie125/article/details/78417760
(7.26补充:上述问题在耐心看完全部程序之后解决了,可以在工具箱generate code后输出参数添加response,validationPredictions,或者直接修改导出的模型code)
% Perform cross-validation
partitionedModel = crossval(trainedClassifier.ClassificationKNN, 'KFold', 10);% Compute validation accuracy
validationAccuracy = 1 - kfoldLoss(partitionedModel, 'LossFun', 'ClassifError');% Compute validation predictions and scores
[validationPredictions, validationScores] = kfoldPredict(partitionedModel);%plot confusion matrix
[cfmat,order] = confusionmat(response,validationPredictions);
imagesc(cfmat);
colormap(flipud(gray));
另外,在https://www.mathworks.com/matlabcentral/answers/280897-exporting-roc-curve-and-confusion-matrix-computation-code-from-the-classification-learner-app?s_tid=answers_rc1-1_p1_Topic也验证了想法
- CONFUSION MATRIX
C = confusionmat(response,validationPredictions);
CP = classperf(response,validationPredictions);
- ROC CURVE:
[X,Y,T,AUC,OPTROCPT,SUBY,SUBYNAMES] = perfcurve(response,validationScores(:,1),'PositiveClass');
figure, plot(X,Y,OPTROCPT(1),OPTROCPT(2),'r*');
matlab 分类学习工具箱 Classification Learner的使用及导出其生成的图,混淆矩阵confusion matrix的画法相关推荐
- matlab 分类学习工具箱 Classification Learner
转载:https://blog.csdn.net/qq_27914913/article/details/71436838 在matlab中,既有各种分类器的训练函数,比如"fitcsvm& ...
- 多分类问题中混淆矩阵(Confusion Matrix)的Matlab画法
在多分类问题中,有一种很实用的分类问题结果统计图. 比如说多类别文类问题,那么每一个类别分到其他类别都有一些数据,但是分到自己类别的毕竟多,这样计算百分比之后就形成了一个矩阵,如果分类正确率高的话,那 ...
- 分类模型之混淆矩阵(Confusion Matrix)
目录 混淆矩阵简介 混淆矩阵及其参数 混淆矩阵的其他指标 混淆矩阵简介 混淆矩阵是ROC曲线绘制的基础,同时它也是衡量分类型模型准确度中最基本,最直观,计算最简单的方法. 可以简单理解为:将一个分类模 ...
- 分类之混淆矩阵(Confusion Matrix)
1. 写在前面 为什么时隔多年又再做一次混淆矩阵的整理,TMD就是每次用的时候要自己回过头查一遍,老是记不住,为了打好基础,再次进行梳理. 2. 为什么会有混淆矩阵 我们简单的分类衡量模型的好坏,其实 ...
- Matlab自带的分类学习工具箱(SVM、决策树、Knn等分类器)
在matlab中,既有各种分类器的训练函数,比如"fitcsvm",也有图形界面的分类学习工具箱,里面包含SVM.决策树.Knn等各类分类器,使用非常方便.接下来讲讲如何使用. 启 ...
- 【MATLAB深度学习工具箱】学习笔记--体脂估计算例再分析:拟合神经网络fitnet里面的数据结构】
原文链接如下 [MATLAB深度学习工具箱]学习笔记--体脂估计Body Fat Estimation_bear_miao的博客-CSDN博客介绍本示例展示一个函数拟合神经网络如何根据解剖学测量结果估 ...
- 【MATLAB深度学习工具箱】学习笔记--体脂估计算例再分析:拟合神经网络fitnet里面的函数】
介绍 上一篇 [MATLAB深度学习工具箱]学习笔记--体脂估计算例再分析:拟合神经网络fitnet里面的数据结构]_bear_miao的博客-CSDN博客原文链接如下[MATLAB深度学习工具箱]学 ...
- 【MATLAB强化学习工具箱】学习笔记--actor网络和critic网络的结果放在哪里?
原算例见 [MATLAB强化学习工具箱]学习笔记--在Simulink环境中训练智能体Create Simulink Environment and Train Agent_bear_miao的博客- ...
- 什么是强化学习,强化学习在控制系统中的应用以及matlab强化学习工具箱的介绍
一.Reinforcement Learning Toolbox介绍 强化学习工具箱使用强化学习算法(包括DQN,A2C和DDPG)为训练策略(policy)提供函数和模块.您可以使用这些策略为复杂的 ...
最新文章
- 例题3-4 猜数字游戏的提示(Master-Mind Hints, UVa 340)
- HTTP.sys 远程执行代码验证工具
- 虚拟化技术中,为什么说容器技术暂时将不会取代虚拟机模式
- Lotus Notes常见问题答疑
- 再谈编程范式-程序语言背后的思想
- 《Head First Python》第一章
- java线程间通信:一个小Demo完全搞懂
- 为什么我要重新开始数据科学
- 进程已不存在,但端口仍被占用
- php +html5 websocket 聊天室
- slf4j相关的配置信息
- 微软最近宣布了一项政策更新,将限制在Office 365中使用Flash,Shockwave和Sil
- Linux网络socket网络抓包工具
- QQ特殊字符制作方式
- android各版本用户量,谷歌公布:Android用户手机系统版本份额分布
- 约翰霍普金斯大学计算机博士收入,约翰霍普金斯大学计算机科学研究生项目详情!...
- 剖析拒绝服务攻击-SYN拒绝服务(转)
- SP3232串口上电瞬间发乱码问题
- 微信小程序 - 实现导航栏和内容上下联动功能
- 室内外实时一体化建模