R语言 roc.curve
时间: 2024-12-26 21:23:01 浏览: 3
### 使用 `roc.curve` 函数绘制 ROC 曲线
在 R 语言中,可以利用 PRROC 包中的 `roc.curve` 函数来绘制 ROC 曲线。此方法适用于评估二分类模型的表现。
#### 安装并加载 PRROC 包
为了使用该功能,需先安装 PRROC 包(如果尚未安装),之后再将其载入环境:
```r
install.packages("PRROC")
library(PRROC)
```
#### 创建样本数据集
假设有一个简单的数据框 `df`,其中包含预测得分 (`scores`) 和真实标签 (`labels`) 列:
```r
set.seed(123) # 设定随机种子以便结果可重复
n <- 100 # 样本数量
df <- data.frame(
scores = runif(n),
labels = as.factor(sample(c('positive', 'negative'), n, replace=TRUE))
)
```
#### 计算并绘图
通过调用 `roc.curve` 来计算 ROC 曲线下面积 (AUC),并将结果显示出来:
```r
# 调用 roc.curve 方法传入参数
result <- roc.curve(scores.class0=df$scores[df$labels=='negative'],
weights.class0=rep(1,sum(df$labels=='negative')),
scores.class1=df$scores[df$labels=='positive'],
weights.class1=rep(1,sum(df$labels=='positive')),
curve=TRUE)
# 绘制 ROC 图像
plot(result[[1]], result[[2]], type='l', col="blue", lwd=2,
xlab="False Positive Rate",
ylab="True Positive Rate",
main="Receiver Operating Characteristic Curve")
abline(a=0,b=1,lty=2,col="gray") # 添加对角线作为参考
legend(x="bottomright", legend=paste("AUC =", round(attr(result,"auc"), digits=3)), bty="n")
```
这段代码会创建一个图形窗口展示 ROC 曲线,并附带 AUC 数值说明[^1]。
阅读全文