python roc-auc图
时间: 2025-03-29 17:07:59 浏览: 33
### 绘制 Python 中 ROC-AUC 曲线的方法
以下是通过 `matplotlib` 和 `sklearn` 库实现绘制 ROC-AUC 曲线的完整方法:
要生成一条 ROC-AUC 曲线,需先计算真阳性率 (TPR) 和假阳性率 (FPR),并利用 AUC 函数评估曲线下面积。此过程可以通过 `roc_curve` 和 `auc` 方法完成。
#### 示例代码
以下是一个完整的示例代码片段,展示如何基于预测概率数据生成 ROC-AUC 曲线:
```python
import numpy as np
from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt
# 假设这是真实标签和模型预测的概率值
y_true = np.array([0, 0, 1, 1])
y_scores = np.array([0.1, 0.4, 0.35, 0.8])
# 计算 FPR、TPR 和阈值
fpr, tpr, thresholds = roc_curve(y_true, y_scores)
# 计算 AUC 的值
roc_auc = auc(fpr, tpr)
# 创建绘图对象
plt.figure()
lw = 2 # 线宽设置
plt.plot(
fpr,
tpr,
color="darkorange",
lw=lw,
label=f"ROC curve (area = {roc_auc:.2f})", # 添加 AUC 数值到标签中
)
plt.plot([0, 1], [0, 1], color="navy", lw=lw, linestyle="--") # 对角线代表随机猜测
plt.xlim([0.0, 1.0]) # 设置 x 轴范围
plt.ylim([0.0, 1.05]) # 设置 y 轴范围
plt.xlabel("False Positive Rate") # x 轴名称
plt.ylabel("True Positive Rate") # y 轴名称
plt.title("Receiver Operating Characteristic Curve") # 图形标题
plt.legend(loc="lower right") # 显示图例位置
plt.show() # 展示图形
```
上述代码实现了如下功能:
- 使用 `roc_curve` 函数计算 TPR 和 FPR[^1]。
- 利用 `auc` 函数获取 AUC 值作为性能度量标准。
- 结合 `matplotlib` 完成可视化操作,其中对角虚线表示完全随机分类器的表现水平。
当实际应用时,请替换 `y_true` 和 `y_scores` 数据为具体任务中的测试集目标变量及其对应的预测概率得分。
#### 关键点解析
- **输入参数说明**:
- `y_true`: 表示真实的二元类别标签数组。
- `y_scores`: 是由机器学习算法产生的样本属于正类别的置信分数向量。
- **输出解释**:
- 返回三个列表:分别是不同决策边界下的假阳率 (`fpr`)、真阳率(`tpr`) 及相应的临界点 (`thresholds`)。
- 同时还提供了用于衡量整体区分能力的一个数值——AUC 面积大小[^2]。
#### 注意事项
如果模型表现较差,则可能得到接近于直线的结果;理想情况下希望看到的是靠近坐标系左上方的一条弯曲路径。
阅读全文
相关推荐

















