ROC曲线(Receiver Operating Characteristic Curve)是利用Classification模型真正率(True Positive Rate)和假正率(False Positive Rate)作为坐标轴,图形化表示分类方法的准确率的高低。

ROC图的一些概念定义::真正(True Positive , TP)被模型预测为正的正样本假负(False Negative , FN)被模型预测为负的正样本假正(False Positive , FP)被模型预测为正的负样本真负(True Negative , TN)被模型预测为负的负样本

真正率(TPR)TPR = TP /(TP

+ FN)正样本预测结果数/正样本实际数。在ROC曲线中,TPR作为Y轴

假正率(FPR)FPR = FP /(FP

+ TN)被预测为正的负样本结果数/负样本实际数。在ROC曲线中,FPR作为X轴

关于ROC曲线的相关概念的解释,请参阅cowboy_wz的博客ROC曲线:http://blog.csdn.net/chl033/article/details/4507544

我在此主要做的事情是画出ROC曲线工程实现方面的一些解释。我们设计一个函数,此函数需要有一个模型预测值predict和数据标签值ground_truth作为输入参数。分为几步进行实现。

(1)统计数据标签值ground_truth(及y)中分类为0和分类为1的数据数目:

pos_num=sum(ground_truth==1);neg_num=sum(ground_truth);

(2)对利用模型求出的预测值predict由低到高进行排序;对应数据原来所在位置进行索引记录,用于重新排序ground_truth.利用函数sort实现,sort详情请查看help文档:

[pre,Index]=sort(predict); ground_truth=ground_truth(Index);

(3)对ground_truth和predict遍历i=1:n,n是测试集数目。其目的是随着predict中概率的增加,随着增加判断正负样本的阈值;也就是说取遍历到的predict值为阈值,大于阈值的假设预测为正样本(阈值右边),小于阈值的假设预测为负样本(阈值左边)。

所以同时我们可得到真正TP 和假正FP值:TP=sum(ground_truth(i:n)==1);FP=sum(ground_truth(i:n)==0);

这时我们就可以求取TPR 和FPR了:TPR=TP/pos_num;  FPR=FP/neg_num;   把求取到的值保存起来(x(i),y(i)),因为这就是我们要在图上画的点。

(4)返回曲线与坐标轴间的面积auc。我们的目的是测量数据的准确率,这个面积就是一个量度,auc越大,准确率越高。

auc=auc+(y(i)+y(i-1))*(x(i-1)-x(i))/2;

实现ROC曲线的代码如下:

%  predict       - 分类器对测试集的分类结果

%  ground_truth - 测试集的正确标签,这里只考虑二分类,即0和1

%  auc            - 返回ROC曲线的曲线下的面积

function auc = plot_roc( predict, ground_truth )

%初始点为(1.0, 1.0)

%计算出ground_truth中正样本的数目pos_num和负样本的数目neg_num

pos_num = sum(ground_truth==1);

neg_num = sum(ground_truth==0);

m=size(ground_truth,1);

[pre,Index]=sort(predict);

ground_truth=ground_truth(Index);

x=zeros(m+1,1);

y=zeros(m+1,1);

auc=0;

x(1)=1;y(1)=1;

for i=2:m

TP=sum(ground_truth(i:m)==1);FP=sum(ground_truth(i:m)==0);

x(i)=FP/neg_num;

y(i)=TP/pos_num;

auc=auc+(y(i)+y(i-1))*(x(i-1)-x(i))/2;

end;

x(m+1)=0;y(m+1)=0;

auc=auc+y(m)*x(m)/2;

plot(x,y);

end

具体实现结果:

matlab计算prc曲线auc面积,ROC曲线及其matlab实现ROC曲线的绘画相关推荐

  1. matlab计算三角格网面积,不规则平面图形的面积计算及其MATLAB实现.doc

    摘要:面积的计算问题是我们在生产.生活中经常遇到的问题,对于平面图形的面积计算,能够考虑运用公式的,往往是那些比较规则的平面图形,诸如三角形.长方形.梯形等.其计算一般都有成熟的计算方法.然而,并不可 ...

  2. matlab 计算闭合区域的面积

    1. matlab函数bwareaopen──删除小面积对象 格式:BW2 = bwareaopen(BW,P,conn) 作用:删除二值图像BW中面积小于P的对象,默认情况下使用8邻域. 算法: ( ...

  3. 期权定价matlab计算,期权的定价方法概述及利用matlab计算期权价格

    期权的定价方法概述及利用matlab计算期权价格 摘要期权是功能最多.最激动人心的融衍生工具之一.期权定价问题一直是金融数学当中最复杂的问题之一,简要介绍几种基本的期权定价理论,并利用matlab金融 ...

  4. matlab计算prc曲线auc面积,MATLAB画ROC曲线,及计算AUC值

    根据决策值和真实标签画ROC曲线,同时计算AUC的值 步骤: 根据决策值和真实标签画ROC曲线,同时计算AUC的值: 计算算法的决策函数值deci 根据决策函数值deci对真实标签y进行降序排序,得到 ...

  5. matlab计算prc曲线auc面积,ROC曲线和AUC面积计算 matlab

    在网上看到的程序,粘贴在自己的博客中,以备以后用后用到了好查找: function [auc, curve] = ROC(score, target, Lp, Ln) % This function ...

  6. matlab 计算准确率,精确率、召回率、准确率与ROC曲线

    精确率表示的是预测为某类样本(例如正样本)中有多少是真正的该类样本,一般用来评价分类任务模型. 比如对于一个分类模型,预测结果为A类的所有样本中包含A0个真正的A样本,和A1个不是A样本的其他类样本, ...

  7. matlab计算三角格网面积,MATLAB中plot的用法

    _(x^2+y^2) 例5.2.4 绘制由方程形成的立体图.(见图5.2.5) z=xe >> clear >> x=-2:0.1:2;y=x; >> [X,Y]= ...

  8. 通过MATLAB计算不规则图像的面积,周长,圆度,矩形度,伸长度

    close all;clear all;clc %N=4提取的四个特征:面积,周长,紧致度,离心率 %N=5提取的五个特征:面积,周长,圆度,矩形度,伸长度 N=5; Feature=zeros(15 ...

  9. python和matlab计算速度对比_【转载】Fortran与Matlab的计算速度对比(Code by myself)...

    http://blog.163.com/zpfzcjndx@126/blog/static/6354568120135196735577/ 最近一直在计算向量式有限元的膜单元,笔者真心给Matlab的 ...

  10. matlab 计算一组数据的方差分析,多因素方差分析|MATLAB 数学统计与优化|MATLAB技术论坛 - Powered by Discuz!...

    一般来讲,使用anovan函数进行多因素方差分析时,调用格式是第二种形式,{A,B,C,D}里面是没有编码的形式,返回一个方差分析表的形式,不过如果要求精度高的话,似乎不能显示更多的小数点位数. 不过 ...

最新文章

  1. VTK:BackfaceCulling背面剔除用法实战
  2. Kinect v2.0 for windows开发环境说明
  3. Windows Azure 安全最佳实践 - 第 6 部分:Azure 服务如何扩展应用程序安全性
  4. 信息系统项目管理师论文_「高项论文」谨防信息系统项目管理师论文12个写作丢分点...
  5. Java JUC工具类--ForkJoin
  6. 关于python学习,最系统的学习网站看这里
  7. exchange EWS 开发随笔二
  8. IIS7安装URLReWrite的妙用
  9. Day77 Java框架 SSH案例_ERP(十一)_CXF框架_红日物流BOS系统_ERP物流信息管理
  10. 阵列卡PERCH330_H730配置手册
  11. tensorflow2实现vnet
  12. 2019-4给学员试讲内容分享
  13. 随机池化(Stochastic Pooling)
  14. scaling之旅_【scaling】什么意思_英语scaling的翻译_音标_读音_用法_例句_在线翻译_有道词典...
  15. Windows10 DNS被劫持 - 解决方案
  16. 【回溯专题】—— 回溯算法入门篇
  17. PAT(乙级)2019年春季考试 7-5 校庆
  18. ElasticSearch SocketTimeoutException解决
  19. 《行为经济学》北京大学 孟涓涓 第四章
  20. 一个程序员的局域网聊天

热门文章

  1. 在MAC上如何隐藏文件夹以及查看隐藏文件
  2. 用量子物理学原理解释为什么振金可以吸收能量(论发散思维的重要性)
  3. 百度竞价关键词选词技巧
  4. .net core 下文件压缩打包下载
  5. 大数据处理的五大关键技术及其应用
  6. HDU 6184 Counting Stars 经典三元环计数
  7. WORD文档插入页码时有几页不显示不显示页码?怎么解决
  8. 期货发展的几个重要时间点和事件
  9. HTML元素拖拽功能的实现
  10. 计算机考研机构排行,2022计算机考研辅导班十大排名