import matplotlib.pyplot as plt

# 真實標簽和預測概率
y_true = [1, 1, 0, 0, 1]
y_score = [0.9, 0.8, 0.7, 0.6, 0.4]

# 計算FPR, TPR和閾值
fpr, tpr, thresholds = roc_curve(y_true, y_score)
roc_auc = auc(fpr, tpr)

# 繪圖
plt.figure()
plt.plot(fpr, tpr, color='darkorange', lw=2, label=f'ROC curve (AUC = {roc_auc:.2f})')
plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('ROC Curve Example')
plt.legend(loc="lower right")
plt.show()

五、ROC曲線的應用場景

5.1 模型選擇與調優

通過比較不同模型的ROC曲線和AUC值,可以直觀判斷哪個模型在整體性能上更優。

5.2 閾值選擇

在醫療診斷(如癌癥篩查)等場景中,假陰性(漏診)的代價可能遠高于假陽性(誤診)。此時可通過ROC曲線選擇一個高TPR的閾值。

5.3 處理類別不平衡問題

在欺詐檢測、罕見病診斷等類別分布極不均衡的場景中,準確率(Accuracy)會嚴重失真,而ROC曲線對類別分布不敏感,更適合作為評估指標。

六、ROC曲線的優缺點

6.1 優點

6.2 缺點

七、實際案例解析

7.1 信用卡欺詐檢測

假設一個信用卡數據集包含10,000條交易記錄,其中100條為欺詐(正類)。訓練兩個模型:

雖然模型A的AUC更高,但通過觀察ROC曲線發現,當FPR<0.1時,模型B的TPR更高。若業務要求嚴格控制誤報率(FPR),則模型B可能更優。

7.2 醫學影像診斷

在肺癌篩查中,假陰性(漏診)可能導致患者錯過最佳治療時間。通過ROC曲線選擇一個TPR≥0.95的閾值,即使這會增加FPR(假陽性),也能最大限度降低漏診風險。

八、總結

ROC曲線通過動態調整分類閾值,直觀展示了模型在**查全率(TPR)誤報率(FPR)**之間的權衡關系。其核心價值在于:

  1. 提供模型性能的全局視圖;
  2. 幫助選擇適合業務場景的閾值;
  3. 有效應對類別不平衡問題。

然而,ROC曲線并非萬能工具。在實際應用中,需結合PR曲線、F1分數等指標,才能全面評估模型的綜合性能。理解ROC曲線的數學本質和應用場景,將有助于數據科學家在復雜業務需求中做出更優決策。

上一篇:

go微服務框架Kratos:定義api接口以及實現

下一篇:

2025年5個最佳在線音樂API推薦
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費