在网上看到的程序,粘贴在自己的博客中,以备以后用后用到了好查找:

function [auc, curve] = ROC(score, target, Lp, Ln)

% This function is to calculat the ordinats of points of ROC curve and the area

% under ROC curve(AUC).

% This program was described in Fawcett's paper "ROC Graphs: notes and practical

% considerations for researchers".

%

% Output:

% curve: N*3 matrix.

% the 1st column is FP

% the 2nd column is TP

% the 3rd column is score

% note: the last row, etc.the last point is [1,1,0]. if output of this

% function is applied to roc_av.m to calculate average curve of roc,

% it should be delete

% auc: scale number, area under ROC curve.

%

% Input parameters:

% score: output of classifier. high socre denote the pattern is more likely

% to be POSITIVE pattern.

% target: classlabel of each pattern.

% Lp: label of POSITIVE pattern.

% Ln: label of NEGATIVE pattern.

%

%

% QingRen (qingren_ny#126.com)

% 2006-7-20

%

len = length(score); % number of patterns

if len ~= length(target)

error('The length of tow input vectors should be equal\n');

end

P = 0; % number of Positive pattern

N = 0; % number of Negative pattern

for i = 1:len

if target(i) == Lp

P = P + 1;

elseif target(i) == Ln

N = N + 1;

else

error('Wrong target value');

end

end

% sort "L" in decending order by scores

score = score(:);

target = target(:);

L = [score target];

L = sortrows(L,1);

index = len:-1:1;

index = index'; %'

L = L(index,:);

fp = 0; fp_pre = 0; % number of False Positive pattern

tp = 0; tp_pre = 0; % number of True Positive pattern.

score_pre = -10000;

curve = [];

auc = 0;

for i = 1:len

if L(i,1) ~= score_pre

curve = [curve; [fp/N, tp/P, L(i,1)]];

auc = auc + trapezoid(fp, fp_pre, tp, tp_pre);

score_pre = L(i,1);

fp_pre = fp;

tp_pre = tp;

end

if L(i,2) == Lp

tp = tp + 1;

else

fp = fp + 1;

end

end

curve = [curve; [1,1,0]]

auc = auc / P / N;

auc = auc + trapezoid(1, fp_pre/N, 1, tp_pre/P)

% calculat the area of trapezoid

function area = trapezoid(x1,x2,y1,y2)

a = abs(x1-x2);

b = abs(y1+y2);

area = a * b / 2;在求得AUC和curve后, 用

plot(curve(:,1),curve(:,2))即可得到ROC曲线

matlab计算prc曲线auc面积,ROC曲线和AUC面积计算 matlab相关推荐

  1. AUC和ROC曲线的前世今生

    AUC数值即为ROC曲线下的面积.ROC曲线从0点开始上升越快,说明模型错分正样本的比例越小,模型对正样本识别的能力越强.在ROC曲线的基础上,抛开阈值的调节,ROC曲线下半部分的面积值就是AUC值. ...

  2. auc和roc曲线解释_ROC曲线和AUC —解释

    auc和roc曲线解释 ROC (receiver operating characteristics) curve and AOC (area under the curve) are perfor ...

  3. 分类器MNIST交叉验证准确率、混淆矩阵、精度和召回率(PR曲线)、ROC曲线、多类别分类器、多标签分类、多输出分类

    本博客是在Jupyter Notebook下进行的编译. 目录 MNIST 训练一个二分类器 使用交叉验证测量精度 混淆矩阵 精度和召回率 精度/召回率权衡 ROC曲线 多类别分类器 错误分析 多标签 ...

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

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

  5. R语言计算AUC(ROC曲线)的注意事项

    之前的推文中介绍了ROC曲线的本质以及两面性: ROC阳性结果还是阴性结果? 并详细介绍了如何手动计算真阳性率/假阳性率,以及怎样计算多个,并把点连接成线,变成ROC曲线:ROC曲线纯手工绘制 这些现 ...

  6. 机器学习常用评价指标:ACC、AUC、ROC曲线

    文章目录 一.混淆矩阵 二.评价指标 1.准确度(Accuracy) 2.AUC ROC曲线 举例 如何画ROC曲线 AUC的计算 AUC意味着什么 为什么使用ROC曲线 参考 一.混淆矩阵 基于样本 ...

  7. matlab绘制星形线并求面积,利用曲线积分,求星形线x=acos3t,y=asin3t所围图形面积...

    利用曲线积分计算曲线所围成图形的面积 :星形线x=acos³t,y=asin&a 由热心网友提供的答案1: 计算星形线:x=acos³t,y=asin³t (a>0 利用曲线积分,求星形 ...

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

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

  9. stata绘制roc曲线_绘制ROC曲线、找截断值,教你两种软件操作方法!

    我们在前面学习过用SPSS(SPSS操作:多项测量指标的ROC曲线分析)和Stata (Stata教程:ROC曲线下面积的比较)绘制ROC曲线.但是,最佳临界点--截断值(cut-off point) ...

最新文章

  1. vlookup反向查询_【Excel 函数】Vlookup 正反向查询
  2. SpringBoot使用Redis和MyBatis完成缓存数据的增删改查
  3. 高并发编程-线程通信_使用wait和notify进行线程间的通信2_多生产者多消费者导致程序假死原因分析
  4. Springsecurity之FilterSecurityInterceptor
  5. streamsets rest api 转换 graphql
  6. c语言指针字符串逆序存放,C语言指针实现字符串的反转
  7. python request.post 字典参数以json_Python requests.post方法中data与json参数区别详解
  8. 软件工程个人作业03—找水王
  9. ubuntun系统mysql数据库同步_Ubuntu下MySQL主从同步配置步骤
  10. 超融合平台安装oracle,超融合平台集成实施方案
  11. 蓝桥杯 ALGO-55 算法训练 矩阵加法
  12. 映射器配置文件和映射器接口
  13. lisp一键室内标注_CAD插件:自动标注面积lisp程序
  14. TeleportUltra_1.65_PortableSoft离线浏览利器-扒网页神器
  15. 微信小程序 ui框架使用
  16. Cisco思科交换机Vlan划分
  17. 塑料周转筐生的材料配方详解
  18. [模拟登陆三剑客]1. Fiddler怎么用?--使用Fiddler 进行网络抓包
  19. 北美年轻人也渴望新的社交软件?「Vibe」想用校园社群 Story 打开市场
  20. Codeforces 819 C. Mister B and Beacons on Field 容斥 数学

热门文章

  1. 使用element-ui的el-tree组件
  2. Lammps实现甲烷与水的竞争吸附-循环不同气体分子
  3. 基于python3.6与pyCharm安装face_recognition库的操作过程
  4. Windows echo 命令
  5. KuCoin与链安科技达成深度战略合作
  6. Mac OS X 10.10.5升级到更高版本的方法
  7. 基于MuPDF库实现PDF文件转换成PNG格式图片
  8. 2017年10月3日测试
  9. 高中计算机高效课堂和有效教学模式论文,高中高效课堂论文提纲 高中高效课堂论文框架怎样写...
  10. Linux小技巧:使用NC实现文件传输