Precision / Recall
الدقة والاستدعاء (Precision / Recall) Precision / Recall
Precision تجيب "من قلت إيجابي، كم كان فعلاً إيجابيًا؟" — Recall تجيب "من الإيجابيات الحقيقية، كم أمسكت؟" — المعياران لا يتحسّنان معًا تلقائيًا.
Precision (الدقة الإيجابية): من بين كل ما صنّفه النموذج إيجابيًا، كم كان فعلاً إيجابيًا؟ تقيس تكلفة الإنذارات الكاذبة. Recall (الاستدعاء أو الحساسية): من بين كل الإيجابيات الحقيقية في البيانات، كم أمسكها النموذج؟ يقيس تكلفة الفائت. المعياران مترابطان لكن لا يمكن رفعهما معًا بشكل غير محدود — رفع Precision عادة يخفض Recall والعكس.
اختيار المهم يعتمد على التطبيق: في فلتر البريد المزعج، Recall عالٍ أهم (لا تريد أن يصل مزعج). في ترتيب نتائج البحث، Precision عالٍ أهم (تريد أول نتيجة أن تكون صحيحة). في الكشف الطبي، يعتمد على ثمن الـ FN (فائت مريض) مقابل FP (فحص إضافي لشخص سليم).
مقياس F1 هو المتوسط التوافقي بين الاثنين، ويُستخدم حين تريد توازنًا. حين يكون اختلال التوازن حادًا بين Precision و Recall، F1 أفضل من المتوسط الحسابي لأنه يعاقب الاختلال بشدة.
الصياغة
Precision = TP / (TP + FP) Recall = TP / (TP + FN) F1 = 2 × (Precision × Recall) / (Precision + Recall)
📄 مثال
from sklearn.metrics import precision_score, recall_score, f1_score
# y_true: التسميات الحقيقية، y_pred: تنبؤات النموذج
print(f"Precision: {precision_score(y_true, y_pred):.2f}")
print(f"Recall: {recall_score(y_true, y_pred):.2f}")
print(f"F1: {f1_score(y_true, y_pred):.2f}")
# F-beta يدعم أوزان مختلفة
from sklearn.metrics import fbeta_score
f2 = fbeta_score(y_true, y_pred, beta=2) # يُرجّح Recall أكثرأهم النقاط
| النقطة | الوظيفة |
|---|---|
| Precision | من قلت إيجابي، كم كان فعلاً إيجابيًا — يقلّل الإنذارات الكاذبة |
| Recall | من الإيجابيات الحقيقية، كم أمسكت — يقلّل الفائت |
| F1 Score | متوسط توافقي بين Precision و Recall — توازن |
| F-beta | إصدار موزون — beta>1 يُفضّل Recall، beta<1 يُفضّل Precision |
💡 نصائح عملية
- اختر المقياس المناسب للتطبيق لا للمظهر: في كشف الاحتيال المالي، الـ FP يكلّف فحصًا إضافيًا والـ FN يخسر مالًا — اختر F1 أو F2
- حين تستخدم threshold لتغيير Precision/Recall، ارسم منحنى Precision-Recall لتعرف نقطة العمل المناسبة
⚠️ أخطاء شائعة
- القول "Recall دائمًا أهم من Precision" أو العكس — يعتمد على التطبيق، لا قاعدة عامة
- استخدام المتوسط الحسابي بدل F1 حين Precision و Recall متباعدان جدًا — المتوسط الحسابي يضخّم القيمة
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار AI-ML الكامل بالعربي.