如何用predict函数绘制ROC曲线?
时间: 2024-02-06 07:13:02 浏览: 19
使用 `predict()` 函数来绘制 ROC 曲线需要以下步骤:
1. 使用训练好的模型对测试数据进行预测,得到预测的概率值;
2. 计算出不同阈值下的真正率(True Positive Rate,TPR)和假正率(False Positive Rate,FPR);
3. 以 FPR 为横坐标,TPR 为纵坐标,绘制 ROC 曲线。
下面是一个示例代码:
```R
library(pROC)
# 生成随机数据
set.seed(123)
n <- 1000
x <- rnorm(n)
y <- rnorm(n)
labels <- factor(x > y, labels = c("no", "yes"))
# 划分训练集和测试集
train_idx <- sample.int(n, size = n * 0.8)
train_data <- data.frame(x = x[train_idx], y = y[train_idx], labels = labels[train_idx])
test_data <- data.frame(x = x[-train_idx], y = y[-train_idx], labels = labels[-train_idx])
# 训练模型
model <- glm(labels ~ x + y, data = train_data, family = "binomial")
# 预测测试集数据
pred <- predict(model, newdata = test_data, type = "response")
# 计算 ROC 曲线
roc_obj <- roc(test_data$labels, pred)
# 绘制 ROC 曲线
plot(roc_obj)
```
其中,`pred` 是使用训练好的模型对测试集数据进行预测得到的概率值。`roc()` 函数的参数传入测试集数据的真实标签和预测概率值,返回一个 `roc` 对象。`plot()` 函数用于绘制 ROC 曲线,`roc` 对象可以直接传入。