ماتریس درهمریختگی (Confusion Matrix)
آموزش ماتریس درهمریختگی: TP، FP، FN، TN و خواندن صحیح خطاهای مدل دستهبندی
ماتریس درهمریختگی چیست؟
ابزار اصلی برای دیدن جزئیات خطاهای مدل دستهبندی. بهجای یک عدد Accuracy، نشان میدهد مدل «کجا» و «چطور» اشتباه میکند.
ساختار ماتریس (باینری)
| پیشبینی: مثبت | پیشبینی: منفی | |
|---|---|---|
| واقعی: مثبت | TP ✅ | FN ❌ |
| واقعی: منفی | FP ❌ | TN ✅ |
چهار حالت
- TP (True Positive): بیمار را بیمار گفت ✅
- TN (True Negative): سالم را سالم گفت ✅
- FP (False Positive): سالم را بیمار گفت ❌ (هشدار کاذب)
- FN (False Negative): بیمار را سالم گفت ❌ (خطرناک!)
کدام خطا بدتر است؟
بستگی به مسئله دارد:
- تشخیص سرطان: FN فاجعه است (بیمار رها میشود)؛ FP فقط آزمایش اضافه
- فیلتر اسپم: FP بدتر است (ایمیل مهم حذف میشود)؛ FN فقط مزاحمت
پیادهسازی
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
print(cm)
# مصورسازی
from sklearn.metrics import ConfusionMatrixDisplay
ConfusionMatrixDisplay(cm).plot()
مثال خواندن ماتریس
برای ۱۰۰ بیمار (۲۰ بیمار واقعی، ۸۰ سالم):
[[70, 10], # سالم: ۷۰ درست، ۱۰ FP
[ 3, 17]] # بیمار: ۳ FN، ۱۷ درست (TP)
مدل ۸۷٪ درست دارد ولی ۳ بیمار را از دست داده — در پزشکی این ۳ نفر مهمترین عدد گزارشاند!
همیشه ماتریس درهمریختگی را ببینید؛ Accuracy ۹۵٪ ممکن است پشتش، همه کلاس کمنما را اشتباه گفته باشد!
جمعبندی
- ماتریس: TP، FP، FN، TN را جدا نشان میدهد
- اهمیت FP و FN به مسئله بستگی دارد
- پایه همه معیارهای بعدی (Precision، Recall و...) همین چهار عدد است
این مبحث بخشی از دوره آموزش کامل ماشین لرنینگ است.