ROC و AUC

آموزش منحنی ROC و شاخص AUC: مقایسه مدل‌ها، انتخاب آستانه و تفسیر احتمال

منحنی ROC چیست؟

ROC (Receiver Operating Characteristic) عملکرد مدل را در همه آستانه‌های ممکن نشان می‌دهد:

خواندن منحنی

AUC چیست؟

مساحت زیر منحنی ROC — یک عدد خلاصه‌کننده:

AUCتفسیر
۱.۰مدل کامل (مشکوک! احتمالاً نشت داده)
۰.۹+عالی
۰.۷ تا ۰.۹خوب
۰.۵مثل پرتاب سکه — بی‌ارزش

تفسیر احتمالی AUC

AUC = احتمال اینکه مدل به یک نمونه مثبت، امتیاز بالاتر از یک نمونه منفی بدهد. AUC=۰.۹ یعنی در ۹۰٪ مقایسه‌های جفتی، ترتیب درست است.

پیاده‌سازی

from sklearn.metrics import roc_curve, roc_auc_score
import matplotlib.pyplot as plt

# احتمال کلاس مثبت (نه خود کلاس!)
probs = model.predict_proba(X_test)[:, 1]

fpr, tpr, thresholds = roc_curve(y_test, probs)
auc = roc_auc_score(y_test, probs)

plt.plot(fpr, tpr, label=f"AUC={auc:.2f}")
plt.plot([0, 1], [0, 1], "--", color="gray")
plt.legend()

مزیت بزرگ AUC

به آستانه حساس نیست و در داده نامتوازن هم معنادار است؛ برای مقایسه مدل‌ها عالی.

ROC-AUC برای خروجی احتمالی محاسبه می‌شود؛ predict_proba بدهید نه predict!

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل ماشین لرنینگ است.

ابزارهای مرتبط