🎉 ROC-AUC曲线详解(机器学习分类评估)

什么是ROC-AUC曲线?

ROC(Receiver Operating Characteristic)曲线是评估分类模型性能的重要工具,AUC(Area Under Curve)表示曲线下面积,值范围在0.5到1之间:

  • 📈 AUC=1:完美分类
  • 📉 AUC=0.5:随机猜测
  • 📊 AUC越高,模型区分正负样本的能力越强

计算方法

  1. 真阳性率(TPR) = TP / (TP + FN)
  2. 假阳性率(FPR) = FP / (FP + TN)
  3. 通过调整分类阈值,绘制TPR与FPR的曲线
  4. 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指标详解

ROC_曲线
AUC_面积