R里有没有package可以画ROC,计算AUC的?

  统计/机器学习 模型验证 R    浏览次数: 1542
3

R里有没有package可以画ROC,计算AUC的?能够有例子如何使用更好!

谢谢!

 

大王来巡山   2017-04-04 13:05



   2个回答 
6

可以用pROC 

#加载pROC
library(pROC)

#画出ROC曲线
plot.roc(actual, prediction)

#计算ROC AUC
auc(actual, prediction)


可爱多   2017-04-04 21:01

It should be "plot.roc" function. - Sophia   2017-04-05 02:19
谢谢修正!我编辑一下 - 可爱多   2017-04-05 07:11
2

pROC比较慢,github上有人贴出了一个更快的版本。代码如下:

fastROC <- function(probs, class) {
    class_sorted <- class[order(probs, decreasing=T)]
    TPR <- cumsum(class_sorted) / sum(class)
    FPR <- cumsum(class_sorted == 0) / sum(class == 0)
    return(list(tpr=TPR, fpr=FPR))
}

# Helpful function adapted from: https://stat.ethz.ch/pipermail/r-help/2005-September/079872.html
fastAUC <- function(probs, class) {
    x <- probs
    y <- class
    x1 = x[y==1]; n1 = length(x1); 
    x2 = x[y==0]; n2 = length(x2);
    r = rank(c(x1,x2))  
    auc = (sum(r[1:n1]) - n1*(n1+1)/2) / n1 / n2
    return(auc)
}


木子周   2018-02-19 10:28



  相关主题

roc auc小于0.5是什么情况?   3回答

如何利用python画分类器的ROC曲线?   1回答

怎么直观理解ROC AUC的概率统计意义?   3回答

sklearn.metrics.auc里提到的梯形法则是什么意思?   2回答

sklearn里计算roc_auc_score,报错ValueError: bad input shape   1回答

精度召回precision recall auc是什么?   1回答

sklearn.preprocessing.StandardScaler采用的是哪种标准化的方法?   1回答

python里什么模块可以计算精度-召回(precision-recall)的AUC?   1回答

二元分类什么时候用LogLoss、什么时候用ROC AUC?如何选择?   1回答

sklearn.metric.auc函数计算出的结果很奇怪   1回答

多元分类的roc auc   1回答

怎么用R得到混淆矩阵?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!