(原+转)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 ...
随机推荐
- sketchup 导出 fbx文件 单位 错误
最近在使用sketchup导出fbx文件到unity中使用时,发生了尺度单位上的错误.按照网上给出的标准教程,选定模型的单位为十进制-米.导出时选项选择'米',但是得到的fbx文件在unity中出现了 ...
- 关于css的优先级
样式的优先级 外部样式 < 内部样式 < 内联样式 选择器的优先权 解释: 1. 内联样式表的权值最高 1000: 2. ID 选择器的权值为 100; 3. Class 类选择器的 ...
- 关于Struts2的类型转换详解
详细出处参考:http://www.jb51.net/article/35465.htm 一.类型转换的意义 对于一个智能的MVC框架而言,不可避免的需要实现类型转换.因为B/S(浏览器/服务器)结构 ...
- Niagara AX之在Station下显示Home节点
默认的Station下是没有Home节点的,那么,这个Home节点是怎么添加上去的呢? 注意Home后面的描述(Description):“Navigation tree defined by nav ...
- 三大主流ETL工具选型
ETL(extract, transform and load)产品乍看起来似乎并不起眼,单就此项技术本身而言,几乎也没什么特别深奥之处,但是在实际项目中,却常常在这个环节耗费太多的人力,而在后续的维 ...
- Java中的各种o
java的po vo dao dto pojo 1各个术语的简介 PO(persistant object)持久对象 最形象的理解就是一个PO就是数据库中的一条记录.PO是在ORM中出现的概念,就是O ...
- 改进我们的小游戏 - 零基础入门学习Python004
改进我们的小游戏 让编程改变世界 Change the world by program 改进我们的小游戏 很多鱼油对改善这个游戏提出了建议,小甲鱼做了一下总结,大概有以下几个方面需要改进: 猜错的时 ...
- css显示省略号
white-space:nowrap;overflow:hidden;text-overflow:ellipsis; <!-- 就这三句,,,嘿嘿....->
- ownCloud Virtual Machines(bitnami.com)
ownCloud Virtual Machines(bitnami.com)https://bitnami.com/stack/owncloud/virtual-machine
- 删除IE缓存中指定的文件
DeleteUrlCacheEntry 1.文件单元:WinInt VC声明 BOOL DeleteUrlCacheEntry ( LPCTSTR lpszUrlName); 函数功能 删除Cache ...