(原+转)ROC曲线
预测
|
||||
1
|
0
|
合计
|
||
实际
|
1
|
True Positive(TP)
|
False Negative(FN)
|
Actual Positive(TP+FN)
|
0
|
False Positive(FP)
|
True Negative(TN)
|
Actual Negative(FP+TN)
|
|
合计
|
Predicted Positive(TP+FP)
|
Predicted Negative(FN+TN)
|
TP+FP+FN+TN
|
Percentile
|
实例数
|
正例数
|
1-特异度(%)
|
敏感度(%)
|
10
|
6180
|
4879
|
2.73
|
34.64
|
20
|
6180
|
2804
|
9.80
|
54.55
|
30
|
6180
|
2165
|
18.22
|
69.92
|
40
|
6180
|
1506
|
28.01
|
80.62
|
50
|
6180
|
987
|
38.90
|
87.62
|
60
|
6180
|
529
|
50.74
|
91.38
|
70
|
6180
|
365
|
62.93
|
93.97
|
80
|
6180
|
294
|
75.26
|
96.06
|
90
|
6180
|
297
|
87.59
|
98.17
|
100
|
6177
|
258
|
100.00
|
100.00
|

上面的部分均来自百度百科。
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
下面是自己的理解,如果不正确,欢迎指正(虽说基本上没啥人看。。。)
前几天画了ROC曲线,其实按照自己的理解,就是错误接受率(FAR,false acceptance rate)和错误拒绝率(FRR,false rejection rate)的关系曲线。FAR对应FP,FRR对应FN。这两个通过阈值T来计算。因为对于分类问题,都需要一个阈值,来判断某样本是属于positive还是negative。对应于每个阈值,都可以得到一个FAR和一个FRR。按照不同的stepsize,得到不同的阈值,便可以得到对应的一组FAR和FRR。之后画FAR和FRR的关系,便是ROC曲线。
matlab代码如下(由于FAR和FRR的数据变化范围比较大,因而使用了对数坐标log):
load('result.mat');
Pnum=length(resultP);
Nnum=length(resultN); minN=min(resultN);
maxN=max(resultN); index=;
for threshold=minN:0.002:maxN
index=index+;
FRR(index)=length(find(resultP>threshold))/Pnum;
FAR(index)=length(find(resultN<threshold))/Nnum;
thresholdT(index)=threshold;
end
plot(FAR,FRR);
title('ROC曲线');
set(gca,'yscale','log')
set(gca,'xscale','log')
axis([min(FAR) max(FAR)+0.01 min(FRR) max(FRR)])
grid on
grid minor set(gca,'YTickMode','manual');
set(gca,'YMinorTick','on');
ylabelval=[1e- 1e- 1e- 1e- 0.2]';
set(gca,'ytick',ylabelval') ;
for kk=::length(ylabelval)
b(kk)='%';
end
ylabeltick=[num2str(ylabelval*),b'];
set(gca,'yticklabel',ylabeltick) ; set(gca,'XTickMode','manual');
xlabelval=[1e- 1e- 1e- 1e- 1e- 1e- ]';
set(gca,'xtick',xlabelval) ;
for kk=::length(xlabelval)
a(kk)='%';
end
xlabeltick=[num2str(xlabelval*),a'];
set(gca,'xticklabel',xlabeltick);
xlabel('FAR');
ylabel('FRR');
画出来的结果如下:
(原+转)ROC曲线的更多相关文章
- xgene:之ROC曲线、ctDNA、small-RNA seq、甲基化seq、单细胞DNA, mRNA
灵敏度高 == 假阴性率低,即漏检率低,即有病人却没有发现出来的概率低. 用于判断:有一部分人患有一种疾病,某种检验方法可以在人群中检出多少个病人来. 特异性高 == 假阳性率低,即错把健康判定为病人 ...
- ROC曲线 vs Precision-Recall曲线
深入理解对比两个曲线各自的特性和相互的差异需要花不少时间研读一些国外的技术博客与相关paper,暂时先列出下面这么多,这部分后续可以继续补充. ROC曲线和AUC的定义可以参看“ROC曲线于AUC”, ...
- ROC曲线、PR曲线
在论文的结果分析中,ROC和PR曲线是经常用到的两个有力的展示图. 1.ROC曲线 ROC曲线(receiver operating characteristic)是一种对于灵敏度进行描述的功能图像. ...
- 精确率与召回率,RoC曲线与PR曲线
在机器学习的算法评估中,尤其是分类算法评估中,我们经常听到精确率(precision)与召回率(recall),RoC曲线与PR曲线这些概念,那这些概念到底有什么用处呢? 首先,我们需要搞清楚几个拗口 ...
- 【数据挖掘】朴素贝叶斯算法计算ROC曲线的面积
题记: 近来关于数据挖掘学习过程中,学习到朴素贝叶斯运算ROC曲线.也是本节实验课题,roc曲线的计算原理以及如果统计TP.FP.TN.FN.TPR.FPR.ROC面积等等.往往运用 ...
- PR曲线,ROC曲线,AUC指标等,Accuracy vs Precision
作为机器学习重要的评价指标,标题中的三个内容,在下面读书笔记里面都有讲: http://www.cnblogs.com/charlesblc/p/6188562.html 但是讲的不细,不太懂.今天又 ...
- 机器学习之分类器性能指标之ROC曲线、AUC值
分类器性能指标之ROC曲线.AUC值 一 roc曲线 1.roc曲线:接收者操作特征(receiveroperating characteristic),roc曲线上每个点反映着对同一信号刺激的感受性 ...
- [zz] ROC曲线
wiki https://zh.wikipedia.org/wiki/ROC%E6%9B%B2%E7%BA%BF 在信号检测理论中,接收者操作特征曲线(receiver operating chara ...
- ROC曲线、AUC、Precision、Recall、F-measure理解及Python实现
本文首先从整体上介绍ROC曲线.AUC.Precision.Recall以及F-measure,然后介绍上述这些评价指标的有趣特性,最后给出ROC曲线的一个Python实现示例. 一.ROC曲线.AU ...
随机推荐
- C#代码启用事务锁Transaction进行一系列提交回滚操作
一.前言 因为很多人一般进行一系列相关数据库操作都是在存储过程里面,而且在存储过程用锁的写法也是很简单的,在这篇文章主要介绍一下C#后台代码用锁进行一系列事务操作,我建立一个简单的winform程序, ...
- struts2 404处理
目前在做一个网络应用程序,struts2 + spring + hibernate,服务器是tomcat.希望用户在IE地址栏乱敲的时候,所敲入的所有未定义的URL都能被程序捕捉到,然后转到一个自制的 ...
- Java IO4:字符流进阶及BufferedWriter、BufferedReader
字符流和字节流的区别 拿一下上一篇文章的例子: 1 public static void main(String[] args) throws Exception 2 { 3 File file = ...
- GitHub+hexo to Blog
title: GitHub+hexo to Blog date: 2014-12-26 09:44:53 tags: hexo, github --- 摘要 一直想要一个自己的博客,不过一直怯于对网站 ...
- Servlet开发(二)
一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...
- [原]此程序专用来说明C++模板的用法
#include using namespace std; //此程序专用来说明模版的使用 template void swap1(T& a,T& b){ T temp=a; ...
- project euler 26:Reciprocal cycles
A unit fraction contains 1 in the numerator. The decimal representation of the unit fractions with d ...
- H5本地存储
在HTML5中可以把数据长期存储在客户端,使用的对象就是localStorage. localStorage常用方法有setItem.getItem.removeItem.clear. 下面是一个存储 ...
- js加载优化
阻塞特性: JS 有个很无语的阻塞特性,就是当浏览器在执行JS 代码时,不能同时做其他任何事情,无论其代码是内嵌的还是外部的. 脚本位置: 浏览器在碰到一个引入外部JS 文件的 ...
- Linux系统编程(1)——文件与I/O之C标准I/O函数与系统调用I/O
Linux系统的I/O也就是一般所说的低级I/O--操作系统提供的基本IO服务,与os绑定,特定于Linux平台.而标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头 ...