Matlab机器学习(分类问题)中多个ROC曲线的绘制_perfcurve_verilog互联网搬运工的博客-程序员秘密

技术标签: matlab  支持向量机  机器学习  分类算法  逻辑回归  

该教程适用于2017版本以后的matlab,老版本可能会有差异。 

step1打开机器学习分类工具箱,导入数据选择“全部模型”进行训练;训练结果如图所示:

 step2 寻找准确度较高的几个模型导出代码(点击右上角的生成函数)

step3 导出函数后将你的训练集,即已知的数据赋给trainingData,即在inputTable = trainingData代码前赋值即可:

trainingData=data1; % data1为已知的数据
inputTable = trainingData;
predictorNames = {'VarName1', 'VarName2', 'VarName3', 'VarName4'};
predictors = inputTable(:, predictorNames);

 step4 将函数文件的第一行注释掉然后加入以下代码;其中ClassNames为所有的类别组成的向量,kk为指定的正类,x_roc1,y_roc1为画图所需的点。

ClassNames=unique(response);
kk=1;
posclass=ClassNames(kk);
group=response;
[x_roc1,y_roc1,~,auc1]=perfcurve(group,validationScores(:,kk),posclass);

step5 change另外一个模型,然后重复上述操作,将

[x_roc1,y_roc1,~,auc1]=perfcurve(group,validationScores(:,kk),posclass);

修改为

[x_roc2,y_roc2,~,auc2]=perfcurve(group,validationScores(:,kk),posclass);

即可。

step6 使用plot函数绘制即可:

plot(x_roc1,y_roc1,'k-','linewidth',1.5);
hold on;
plot(x_roc2,y_roc2,'r-','linewidth',1.5);
xlabel('假正类率FPR');ylabel('真正类率TPR');
legend('决策树','支持向量机');

最终的效果图: 

 若想同时显示AUC,则只需使用strcat函数连接字符串和变量即可,如下:

plot(x_roc1,y_roc1,'k-','linewidth',1.5);
hold on;
plot(x_roc2,y_roc2,'r-','linewidth',1.5);
xlabel('假正类率FPR');ylabel('真正类率TPR');
text1=strcat('决策树 AUC=',num2str(auc1));
text2=strcat('支持向量机 AUC=',num2str(auc2));
legend(text1,text2);

总结

利用ROC曲线选择合适的分类模型具有明显的缺点:在多分类问题中正类选择不同时模型的选择可能不一样,多适合二分类模型的选取。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiaohuhahahaha/article/details/120115500

智能推荐

C++去重容器 unordered_set 用法概述_c++ unorderedset 去重_浪矢清的博客-程序员秘密

unordered_set构造函数unordered_set<int> set1; //创建空setunordered_set<int> set2(set1); //拷贝构造unordered_set<int> set3(set1.begin(), set1.end()); //迭代器构造unordered_set<int> set4(arr,arr+5); //数组构造unordered_set<int> set5

Win10中CUDA、cuDNN的安装与卸载_windows卸载cuda_Sophia_fez的博客-程序员秘密

说明:此篇为配置tensorflow环境教程博客的分支,为了避免主博客太长,又为避免步骤不够详细而写,详情请见:Win10安装Anaconda3、TensorFlow、Keras文章目录1.安装CUDA2.安装cuDNN1.安装CUDA安装包下载地址(主博客在介绍版本选择的时候也有提到)官网各种version的CUDA下载地址官网各种cuDNN下载地址打开“cuda_8.0.44_w...

《锋利的jQuery》要点归纳(五)jQuery与ajax的应用(上)_Jason 薛的博客-程序员秘密

一、jQuery中的Ajax  1 load()方法 load(url[,data][,callback]) url: string类型,请求html页面的url地址data:object类型,发送至服务器的key/value数据callback:func

OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor, file /io/opencv/...src/color.cpp_更新头像的博客-程序员秘密

关于错误:OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor, file /io/opencv/modules/imgproc/src/color.cpp, line 11079以前也遇到过类似问题,但是不常见,每次都要找半天原因,遂记录在此。发生原因:传入图片路径不对,或图片有问题(样本噪声)解决方案:核实图片路径并修改,清洗数据以上是个人所遇到的情况,仅供参考!...

phpmyadmin配置_xiongyuefei的博客-程序员秘密

先下载一份最新版的phpMyAdmin MYSQL管理器。 解压后得到一个phpMyAdmin的目录(你可以改名) 找到目录里的config.inc.php文件,打开 找到 $cfg[PmaAbsoluteUri] 修改你将上传到空间的phpMyAdmin的网址 如:$cfg[PmaAbsoluteUri] = http://hztv.com.ru/phpmyadmin/; 还有下面的

黑马程序员 ----------- 内容提供者(ContentProvider)_黑马提供者创建内容提供者_Mauiie的博客-程序员秘密

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

随便推点

python信号端点检测_语音端点检测(Voice Activity Detection,VAD)_weixin_39585675的博客-程序员秘密

本文内容均翻译自这篇博文:(该博主的相关文章都比较好,感兴趣的可以自行学习) Voice Activity Detection(VAD) Tutorial语音端点检测一般用于鉴别音频信号当中的语音出现(speech presence)和语音消失(speech absence)。这里将提供一个简单的VAD方法,当检测到语音时输出为1,否则,输出为0。语音是否出现或者在背景噪声上是否平坦决定了VAD方...

OpenSSL.SSL.Error: [('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')]_sort浅忆的博客-程序员秘密

转:https://www.cnblogs.com/qiaoer1993/p/10985376.html1.OpenSSL.SSL.Error: [('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')] j解决办法url = "xxx"hearders1 = { 'Hos...

搭建WinDbg应用程序调试环境_dbgsrv -t_Ret0的博客-程序员秘密

WinDbg调试应用程序的两种方式,本地调试和远程调试。

第十三次CCF CSP认证(2018年3月)真题URL映射_ccf2018年3月url_Reacubeth的博客-程序员秘密

问题描述   URL 映射是诸如 Django、Ruby on Rails 等网页框架 (web frameworks) 的一个重要组件。对于从浏览器发来的 HTTP 请求,URL 映射模块会解析请求中的 URL 地址,并将其分派给相应的处理代码。现在,请你来实现一个简单的 URL 映射功能。   本题中 URL 映射功能的配置由若干条 URL 映射规则组成。当一个请求到达时,URL 映射功能...

第四周课程总结和实验报告_weixin_30261095的博客-程序员秘密

课程总结:这周讲了String直接赋值的问题,实例化String的对象,讲了String str1="hello"与String str2=new String (“hello”)的区别,还有拼接和代替的方法。1.写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是Stri...

linux 命令行配置wlan无线网卡_hanzengyi的博客-程序员秘密

无线网卡配置<br />此页由Linux Wiki用户Chenxing于2008年11月27日 (星期四) 09:28的最后更改。 在1233456的工作基础上。<br />本文介绍在Linux命令行界面中手动配置无线网卡的方法。目前流行的多数发行版都支持用图形界面的network-manager方便地进行配置,而无需使用本文所介绍的原始方法。<br /><br />下面介绍使用iwconfig和ifconfig等命令在命令行状态下配置无线网络。前题是无线网卡驱动已经正确安装,并被系统正确识别。<br />

推荐文章

热门文章

相关标签