登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

云之南

风声,雨声,读书声,声声入耳;家事,国事,天下事,事事关心

 
 
 

日志

 
 
关于我

专业背景:计算机科学 研究方向与兴趣: JavaEE-Web软件开发, 生物信息学, 数据挖掘与机器学习, 智能信息系统 目前工作: 基因组, 转录组, NGS高通量数据分析, 生物数据挖掘, 植物系统发育和比较进化基因组学

在Excel中作ROC曲线  

2011-03-08 21:50:23|  分类: 数理统计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

ROC曲线

http://zh.wikipedia.org/zh-cn/ROC%E6%9B%B2%E7%BA%BF

http://baike.baidu.com/view/42249.htm

 

 

分类模型尝试将各个实例(instance)划归到某个特定的类,而分类模型的结果一般是实数值,如逻辑回归,其结果是从0到1的实数值。这里就涉及到如何确定阈值(threshold value),使得模型结果大于这个值,划为一类,小于这个值,划归为另一类。

考虑一个二分问题,即将实例分成正类(positive)或负类(negative)。对一个二分问题来说,会出现四种情况。如果一个实例是正类并且也被预测成正类,即为真正类(True positive),如果实例是负类被预测成正类,称之为假正类(False positive)。相应地,如果实例是负类被预测成负类,称之为真负类(True positive),正类被预测成负类则为假负类(false negative)。

列联表如下表所示,1代表正类,0代表负类。


  

  

预测

  

  

  

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


从列联表引入两个新名词。其一是真正类率(true positive rate ,TPR), 计算公式为TPR=TP / (TP + FN),刻画的是分类器所识别出的正实例占所有正实例的比例。另外一个是负正类率(false positive rate, FPR),计算公式为FPR= FP / (FP + TN),计算的是分类器错认为正类的负实例占所有负实例的比例。还有一个真负类率(True Negative Rate,TNR),也称为specificity,计算公式为TNR=TN / (FP + TN) = 1 ? FPR。

在一个二分类模型中,对于所得到的连续结果,假设已确定一个阀值,比如说0.6,大于这个值的实例划归为正类,小于这个值则划到负类中。如果减小阀值,减到0.5,固然能识别出更多的正类,也就是提高了识别出的正例占所有正例的比类,即TPR,但同时也将更多的负实例当作了正实例,即提高了FPR。为了形象化这一变化,在此引入ROC。

Receiver Operating Characteristic,翻译为"接受者操作特性曲线",够拗口的。曲线是由两个变量的组合,1-specificity和Sensitivity. 由于1-specificity=FPR,即负正类率。Sensitivity即是真正类率,True positive rate,反映了正类覆盖程度。这个组合以1-specificity对sensitivity,即是以代价(costs)对收益(benefits)。

下表是一个逻辑回归得到的结果。将得到的实数值按大到小划分成10个个数相同的部分。


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


其正例数为此部分里实际的正类数。也就是说,将逻辑回归得到的结果按从大到小排列,倘若以前10%的数值作为阀值,即将前10%的实例都划归为正类,6180个。其中,正确的个数为4879个,占所有正类的4879/14084*100%=34.64%,即敏感度;另外,有6180-4879=1301个负实例被错划为正类,占所有负类的1301/47713*100%=2.73%,即1-特异度。以这两组值分别作为x值和y值,在excel中作散点图。得到ROC曲线如下

对角线反映的是随机选择的结果,此对角线作为对照线。到底该怎样选择阀值呢,这涉及到了AUC(Area Under the ROC Curve,ROC曲线下的面积)。

  评论这张
 
阅读(1195)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018