(原+转)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 ...
随机推荐
- Linux系统的组成和内核的组成
关于linux的组成的宏观认识. 组成图: 内核组成: 一个完整的Linux内核一般由5部分组成,它们分别是内存管理.进程管理.进程间通信.虚拟文件系统和网络接口.
- C++程序中不同变量、函数在内存中内存中的分布情况
一.一个C++编译的程序占用的内存分为以下几个部分 1.栈区:由编译器自动分配 存放函数的参数值,局部变量的值等,操作方式类似于数据结构中的栈. 2.堆区:一般由程序员分配释放,若程序员不释放,程序结 ...
- (原)Ubuntu14中安装GraphicsMagick
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5661439.html 参考网址: http://comments.gmane.org/gmane.co ...
- mac下 WebStorm下主题包安装
mac下: 主题包 1.mac下,点击桌面,使用shift+command+G 输入:~/Library/Preferences 前往(mac查找安装目录的方法,因为默认这些文件夹是隐藏的),进入We ...
- html file选中图片后 不经过服务器 立刻显示在页面
html结构中 file类型加上 onchange事件 ,用FileReader读取图片的data:/images,然后显示在img标签中, 代码如下: <img class="pre ...
- FatMouse's Speed(HDU LIS)
FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- Nightmare(BFS)
#include <iostream> #include <cstdio> #include <cstring> #include <queue> #d ...
- 在eclipse中首次新建项目的时候,出现Project interpreter not specified
在eclipse中首次新建项目的时候,出现Project interpreter not specified(大致可以理解为:没有执行的项目编译者) 原因就是安装了pydev之后,我们的python还 ...
- TabHost刷新activity的方法
在android中,使用tabHost的时候,如果tab被点击,该tab所对应的activity被加载了,从别的tab切换回来的时候,activity不会再次被创建了(onCreate),所以要想每次 ...
- C51编译器的扩展关键字
附表1-1 ANSIC标准关键字 附表1-2 C51编译器的扩展关键字