分类器评价与在R中的实现:ROC图与AUC

分类模型评价一般有以下几种方法:混淆矩阵(Confusion Matrix)、收益图(Gain Chart)、提升图(Lift Chart)、KS图(KS Chart)、接受者操作特性曲线(ROC Chart)。“分类器评价与在R中的实现”系列中将逐个介绍。

之前已介绍过最基础的混淆矩阵收益图与提升图。本篇介绍ROC图(ROC Chart)及由此计算的AUC。

一、ROC图简介

ROC曲线和收益/提升图一样,通过对分类不同阀值的记录对混淆矩阵进行改良。由于种种历史原因,ROC又叫“接收者操作特征曲线”。它的x轴是false positive rate(1-specificity),y轴是true positive rate(sensitivity)。

显然,ROC曲线是过(0,0)和(1,1)两点的。考虑两种极端情况:当将阀值放松,把所有观测分类为negative时,在(0,0);当将阀值收紧,将观测全部分类为positive时,为(1,1)。随机模型的ROC曲线是穿过(0,0)和(1,1)的45度线。

左上角的(0,1)点表示判断全部正确,所以理想模型应该与这一点越接近越好。这个接近程度可以用ROC曲线下面积AUC(Area Under Curve)来表示。随机模型的AUC为右下三角0.5,全部分类正确模型的AUC为1。所以模型越接近左上角,AUC会越接近1,反之会越接近0.5。

二、在R中作ROC图,并计算AUC

1 直接计算

直接计算TPR和FPR。

require(ROCR)
data(ROCR.simple)
data <- as.data.frame(ROCR.simple)[1:10, ]
data <- data[order(data[, 1], decreasing = TRUE), ]
data$target_cum <- cumsum(data[, "labels"])
data$tpr <- data$target_cum/sum(data[, "labels"])
data$fpr <- (row(data[, 1, drop = F]) - data$target_cum)/(nrow(data) - sum(data[, 
    "labels"]))
data

可以看到fpr,tpr是经过(1,1)点的。(0,0)点未显示在表中。

##    predictions labels target_cum    tpr  fpr
## 7       0.9706      1          1 0.1667 0.00
## 8       0.8902      1          2 0.3333 0.00
## 10      0.8688      0          2 0.3333 0.25
## 9       0.7818      1          3 0.5000 0.25
## 1       0.6125      1          4 0.6667 0.25
## 3       0.4321      0          4 0.6667 0.50
## 5       0.3849      0          4 0.6667 0.75
## 2       0.3643      1          5 0.8333 0.75
## 6       0.2444      1          6 1.0000 0.75
## 4       0.1403      0          6 1.0000 1.00
plot(data$tpr, data$fpr, type = "l", main = "ROC Chart") 

plot of chunk unnamed-chunk-1
2 用ROCR包画图、计算AUC

pred <- prediction(ROCR.simple$predictions, ROCR.simple$labels)
roc <- performance(pred, "tpr", "fpr")
plot(roc, main = "ROC chart")

plot of chunk unnamed-chunk-1

auc <- performance(pred, "auc")@y.values
auc
## [[1]]
## [1] 0.8342

AUC为0.8342可以这样解释:当从此模型预测的positive案例中随机选择一个,再从此模型预测的negative案例中随机选择一个,那么有83.43%的机会前者的分数会比后者高,比随机模型多了33.43%的可能性。

from: http://iccm.cc/classification-model-evaluation-roc-chart-auc/

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值