نمودار ROC (مخفف Receiver Operating Characteristic) به صورت گرافیکی نمایش میدهد که چقدر یک مدل دستهبندی عملکرد خوبی دارد و AUC (یا همان مساحت زیر نمودار) یک معیار عددی است که از نمودار ROC مشتق میشود و عملکرد کلی یک مدل را خلاصه میکند.
الگوریتمهای طبقهبندی (Classification) مشهور یادگیری ماشین مانند درخت تصمیم یا رگرسیون لاجستیک این قابلیت را دارند که خروجی پیشبینی را به صورت احتمال تعلق به هر کلاس ارائه دهند. در کتابخانهی sklearn زبان پایتون این امکان با متد predict_proba فراهم شده است. به عنوان مثال اگر سه کلاس داشته باشیم، پیشبینی برای یک نمونه ممکن است برداری مانند [0.1, 0.7, 0.2] باشد که جمع آنها یک است. متد predict در این حالت کلاسی را انتخاب میکند که بیشترین احتمال را دارد.
در طبقهبندی دودویی، برای هر نمونه دو احتمال داده میشود که جمع آنها برابر با یک است. به طور پیشفرض، اگر احتمال کلاس مثبت بیشتر از نیم باشد، آن نمونه مثبت پیشبینی میشود. اما در مسائل واقعی آستانهی نیم همیشه مناسب نیست. برای مثال در پزشکی، اگر مدلی احتمال ابتلا به بیماری خطرناکی را حتی دو دهم (بیست درصد) پیشبینی کند، میتوان آن را نشانهای برای آزمایش بیشتر دانست. این مسئله به نامتوازن بودن دادهها (مثلا تعداد بیماران کم در برابر افراد سالم) برمیگردد.
برای ارزیابی عملکرد مدل در آستانههای مختلف، از منحنی ROC استفاده میکنیم. این منحنی نرخ مثبت درست (TPR) را در برابر نرخ مثبت کاذب (FPR) برای مقادیر گوناگون آستانه نشان میدهد و مساحت زیر آن (AUC) معیاری از کیفیت کلی مدل است. مزیت اصلی ROC این است که وابسته به انتخاب یک آستانهی خاص نیست.
در ویدئوی زیر در مورد روش ساخت نمودار ROC و مفهوم مساحت زیر آن صحبت کردهام.
در باب حکمت منحنی ROC و مساحت زیر نمودارش
کدهای بحث شده در پیوند زیر منتشر شدهاند.
Philosophy_of_ROC_Curve_&_AUC.ipynb
جمعبندی و نکات تکمیلی
در ادامه جمعبندی نوشتههای فوق به همراه برخی نکات تکمیلی و مفید آمده است.
[برگرد بالا]نمودار ROC (Receiver Operating Characteristic) عملکرد مدلهای طبقهبندی را در آستانههای مختلف نمایش میدهد. محور افقی آن نرخ مثبت کاذب (False Positive Rate) و محور عمودی نرخ مثبت درست (True Positive Rate) است. این نمودار کمک میکند تا متوجه شویم مدل در تشخیص کلاس مثبت چقدر خوب عمل میکند.
[برگرد بالا]AUC (Area Under the Curve) مساحت زیر نمودار ROC است و نشان میدهد مدل بهصورت کلی تا چه حد قادر به تفکیک دو کلاس است.
مقدار AUC = 1 یعنی مدل کاملاً بینقص است.
مقدار AUC = 0.5 یعنی مدل تصادفی عمل میکند (بدون توانایی تمایز).
هر چه مقدار AUC به 1 نزدیکتر باشد، مدل عملکرد بهتری دارد.
[برگرد بالا]زیرا ROC تمام مقادیر آستانه را از 0 تا 1 بررسی میکند و برای هر آستانه مقادیر TPR و FPR را محاسبه مینماید. به همین دلیل، ارزیابی کلیتری از مدل ارائه میدهد و به یک آستانه خاص وابسته نیست.
[برگرد بالا]در دادههای بسیار نامتوازن (مثلاً زمانی که کلاس مثبت بسیار نادر است)، ممکن است ROC و AUC گمراهکننده باشند، چون در چنین شرایطی Precision–Recall Curve (منحنی دقت-بازخوانی) معمولا معیار مناسبتری است.
[برگرد بالا]AUC-ROC به تعادل بین نرخهای مثبت و منفی حساس نیست و برای دادههای متوازن مناسبتر است، در حالی که AUC-PR (مساحت زیر منحنی Precision–Recall) برای دادههای نامتوازن عملکرد مدل را بهتر نشان میدهد.
[برگرد بالا]دقت (Accuracy) فقط عملکرد مدل را در یک آستانه خاص میسنجد، اما ROC عملکرد مدل را در تمام آستانهها بررسی میکند. بنابراین ROC و AUC درک عمیقتری از رفتار مدل در تشخیص مثبتها و منفیها ارائه میدهند.