ماتریس درهمریختگی (Confusion Matrix): قطبنمای تشخیص خطا
نویسنده: فاطمه جعفری نوبخت
1. مقدمه: توهمِ «دقت»
فرض کنید شما مدلی ساختهاید که قرار است وقوع زلزله را پیشبینی کند. از آنجا که زلزله پدیدهای نادر است، مدل شما یک استراتژی ساده پیش میگیرد: همیشه میگوید «زلزله نمیآید».
اگر در ۹۹٪ روزها زلزله نیاید، مدل شما ۹۹٪ دقت (Accuracy) دارد! اما در روزی که زلزله بیاید، مدل شکست میخورد و فاجعه رخ میدهد.
اینجاست که معیار سادهی «دقت» ما را فریب میدهد. برای درک واقعی عملکرد مدل، ما به ابزاری دقیقتر نیاز داریم که نه تنها تعداد درستها، بلکه انواع اشتباهات را هم به ما نشان دهد. این ابزار، ماتریس درهمریختگی است.
2. آناتومی ماتریس: چهار خانه سرنوشتساز
ماتریس درهمریختگی یک جدول ساده (معمولاً ۲×۲ برای مسائل دوتایی) است که پیشبینیهای مدل را در برابر واقعیت قرار میدهد.
این جدول چهار حالت ممکن را نشان میدهد:
۱. مثبت حقیقی (True Positive – TP): «موفقیت»
- واقعیت: مثبت (مثلاً بیمار است).
- پیشبینی مدل: مثبت (بیمار است).
- تفسیر: مدل به درستی خطر را تشخیص داد.
۲. منفی حقیقی (True Negative – TN): «آرامش صحیح»
- واقعیت: منفی (سالم است).
- پیشبینی مدل: منفی (سالم است).
- تفسیر: مدل به درستی سکوت کرد.
۳. مثبت کاذب (False Positive – FP): «آژیر خطر اشتباه» (خطای نوع اول)
- واقعیت: منفی (سالم است).
- پیشبینی مدل: مثبت (بیمار است).
- مثال: وقتی ایمیل مهم شما اشتباهاً به پوشه اسپم میرود. یا وقتی آتشنشانی برای آتشی که وجود ندارد اعزام میشود.
۴. منفی کاذب (False Negative – FN): «غفلت خطرناک» (خطای نوع دوم)
- واقعیت: مثبت (بیمار است).
- پیشبینی مدل: منفی (سالم است).
- مثال: وقتی بیمار سرطان دارد، اما آزمایش میگوید سالم است. (خطرناکترین نوع خطا در بسیاری از کاربردها).
3. فرمولهای حیاتی: استخراج دانش از ماتریس
از دلِ این چهار عدد، معیارهای مهمی بیرون میآید که عملکرد واقعی مدل را نشان میدهند:
الف) صحت (Accuracy)
Accuracy = \frac{TP + TN}{Total}
- چه درصدی از کل پیشبینیها درست بوده است؟ (در دادههای نامتوازن کاربرد ندارد).
ب) دقت (Precision)
Precision = \frac{TP}{TP + FP}
- تفسیر: وقتی مدل ادعا میکند “این مورد مثبت است”، چقدر میتوان به حرفش اعتماد کرد؟
- کجا مهم است؟ سیستم پیشنهاد دهنده یوتیوب. (اگر ویدیو بد پیشنهاد دهد، کاربر آزرده میشود، پس باید دقت بالا باشد).
ج) فراخوانی یا حساسیت (Recall / Sensitivity)
Recall = \frac{TP}{TP + FN}
- تفسیر: مدل توانسته چند درصد از کل موارد مثبتِ موجود در جهان را پیدا کند؟
- کجا مهم است؟ تشخیص تروریستها در فرودگاه. (مهم نیست چند نفر بیگناه را بگردیم، مهم این است که هیچ تروریستی از گیت رد نشود. یعنی FN باید صفر باشد).
د) امتیاز F1 (F1-Score)
F1 = 2 \times \frac{Precision \times Recall}{Precision + Recall}
- میانگین هارمونیک دقت و فراخوانی. وقتی میخواهید تعادلی بین این دو برقرار کنید، بهترین معیار است.
4. مثال کاربردی در GIS و محیط زیست
فرض کنید مدلی برای تشخیص تغییرات جنگل (Deforestation) از روی تصاویر ماهوارهای ساختهاید.
- TP: جنگل واقعاً قطع شده و مدل هم گفته قطع شده. (عالی)
- TN: جنگل دست نخورده و مدل هم گفته دست نخورده. (عالی)
- FP (مثبت کاذب): جنگل سالم است، اما مدل اشتباهاً هشدار قطع درختان داده.
- هزینه: تیم بازرسی بیجهت به محل اعزام میشود و بودجه هدر میرود.
- FN (منفی کاذب): قاچاقچیان درختان را بریدهاند، اما مدل متوجه نشده.
- هزینه: جنگل از بین میرود و ما خبردار نمیشویم.
در این سناریو، احتمالاً شما ترجیح میدهید Recall را بالا ببرید (حتی اگر چند هشدار اشتباه دریافت کنید)، زیرا از دست دادن جنگل جبرانناپذیر است.
5. بدهبستان (Trade-off): دقت یا فراخوانی؟
شما نمیتوانید همزمان Precision و Recall را ۱۰۰٪ کنید (مگر در مسائل بسیار ساده). این یک الاکلنگ است:
- اگر بخواهید هیچ موردی را از دست ندهید (Recall بالا)، مدل باید “حساس” شود و به هر چیز مشکوکی گیر بدهد -> در نتیجه هشدارهای غلط (FP) زیاد میشود و Precision پایین میآید.
- اگر بخواهید فقط وقتی مطمئن هستید هشدار دهید (Precision بالا)، مدل باید “محتاط” شود -> در نتیجه بسیاری از موارد واقعی را نادیده میگیرد و Recall پایین میآید.
6. نتیجهگیری
ماتریس درهمریختگی به ما یاد میدهد که “اشتباه کردن” اجتنابناپذیر است، اما همه اشتباهات یکسان نیستند. بسته به اینکه شما پزشک باشید (که نگران جان بیمار است) یا بانکدار (که نگران ریسک وام است)، باید تصمیم بگیرید که کدام نوع خطا (FP یا FN) برای شما قابل تحملتر است و مدل را بر اساس آن تنظیم کنید.
