🎉 ROC-AUC曲线详解(机器学习分类评估)
什么是ROC-AUC曲线?
ROC(Receiver Operating Characteristic)曲线是评估分类模型性能的重要工具,AUC(Area Under Curve)表示曲线下面积,值范围在0.5到1之间:
- 📈 AUC=1:完美分类
- 📉 AUC=0.5:随机猜测
- 📊 AUC越高,模型区分正负样本的能力越强
计算方法
- 真阳性率(TPR) = TP / (TP + FN)
- 假阳性率(FPR) = FP / (FP + TN)
- 通过调整分类阈值,绘制TPR与FPR的曲线
- AUC计算:使用梯形法则或积分方法
使用场景
- ⚠️ 适用于二分类问题
- 📈 用于不平衡数据集的性能评估
- 📊 常见于机器学习竞赛和模型对比
scikit-learn实现示例
from sklearn.metrics import roc_auc_score, roc_curve
import matplotlib.pyplot as plt
y_true = [0, 1, 1, 0]
y_scores = [0.1, 0.4, 0.8, 0.3]
# 计算AUC
auc = roc_auc_score(y_true, y_scores)
print(f"AUC值: {auc}")
# 绘制ROC曲线
fpr, tpr, thresholds = roc_curve(y_true, y_scores)
plt.plot(fpr, tpr, label=f'AUC = {auc:.2f}')
plt.plot([0, 1], [0, 1], 'k--')
plt.xlabel('FPR')
plt.ylabel('TPR')
plt.legend()
plt.show()
📌 扩展阅读:ROC-AUC指标详解