تعمّق في مقاييس التصنيف
مصفوفة الالتباس، والدقة، والاسترجاع، وF1، وROC-AUC، ومنحنى PR — اختيار المقياس المناسب.
تعمّق في مقاييس التصنيف درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
الدقة وحدها لا تكفي
الدقة هي نسبة التنبؤات الصحيحة، لكنها قد تكون مضللة في البيانات غير المتوازنة. فقد يحقق نموذج يتنبأ دائمًا بالفئة الأكبر دقةً تبلغ 99%، مع أنه عديم الفائدة للفئة النادرة.
مصفوفة الالتباس
تقسم مصفوفة الالتباس التنبؤات إلى إيجابيات حقيقية وإيجابيات كاذبة وسلبيات حقيقية وسلبيات كاذبة. وهي الأساس لجميع المقاييس الأخرى.
from sklearn.metrics import confusion_matrix
y_true = [0, 1, 1, 0, 1, 0]
y_pred = [0, 1, 0, 0, 1, 1]
print(confusion_matrix(y_true, y_pred))
# rows = actual, columns = predictedالإحكام
الإحكام = TP / (TP + FP). من بين جميع العناصر التي تنبأ النموذج بأنها موجبة، كم عنصرًا كان موجبًا فعلًا؟ يعني الإحكام المرتفع عددًا قليلًا من الإنذارات الكاذبة. ويكتسب أهمية عندما تكون الإيجابيات الكاذبة مكلفة (مثل مرشحات البريد العشوائي).
from sklearn.metrics import precision_score
print(precision_score(y_true, y_pred))الاستدعاء
الاستدعاء = TP / (TP + FN). من بين جميع الحالات الموجبة فعليًا، كم حالة اكتشفناها؟ يعني الاستدعاء المرتفع عددًا قليلًا من الحالات الفائتة. ويكتسب أهمية عندما تكون السلبيات الكاذبة مكلفة (مثل فحص الأمراض).
from sklearn.metrics import recall_score
print(recall_score(y_true, y_pred))درجة F1
درجة F1 هي المتوسط التوافقي للإحكام والاستدعاء: 2 * P * R / (P + R). وهي توازن بينهما، وتفيد عند الحاجة إلى رقم واحد للبيانات غير المتوازنة.
from sklearn.metrics import f1_score, classification_report
print(f1_score(y_true, y_pred))
print(classification_report(y_true, y_pred))منحنى ROC وAUC
يرسم منحنى ROC معدل الإيجابيات الحقيقية مقابل معدل الإيجابيات الكاذبة عبر عتبات مختلفة. وتلخصه roc_auc_score؛ إذ تمثل القيمة 1.0 أداءً مثاليًا، بينما تمثل 0.5 تخمينًا عشوائيًا.
from sklearn.metrics import roc_auc_score
# needs probability scores, not hard labels
proba = model.predict_proba(Xte)[:, 1]
print(roc_auc_score(yte, proba))منحنى الإحكام والاستدعاء
يرسم منحنى PR الإحكام مقابل الاستدعاء عبر عتبات مختلفة. وهو أكثر إفادة من ROC عندما تكون الفئات غير متوازنة بدرجة كبيرة، لأنه يركز على الفئة الموجبة.
from sklearn.metrics import precision_recall_curve
prec, rec, thresh = precision_recall_curve(yte, proba)
# plot rec (x) vs prec (y) to see the tradeoffمتوسط الإحكام
تلخص average_precision_score منحنى PR في رقم واحد (المساحة أسفل منحنى PR). وهو مقياس التلخيص المفضل للتصنيف الثنائي غير المتوازن.
from sklearn.metrics import average_precision_score
print(average_precision_score(yte, proba))ROC AUC مقابل متوسط الإحكام
قد يبدو ROC AUC متفائلًا في البيانات غير المتوازنة، لأن السلبيات الحقيقية تهيمن عليها. أما متوسط الإحكام فيتجاهل السلبيات الحقيقية ويعكس أداء الفئة الموجبة النادرة بصورة أكثر إنصافًا.
اختيار المقياس المناسب
استخدموا F1 أو متوسط الإحكام للمسائل غير المتوازنة. واستخدموا ROC AUC لقياس جودة الترتيب في الحالات المتوازنة. اختاروا الإحكام عندما تكون الإنذارات الكاذبة ضارة، والاستدعاء عندما تكون الحالات الفائتة ضارة. حدّدوا أولويتكم دائمًا قبل اختيار المقياس.
ضبط العتبة
تعتمد معظم المقاييس على عتبة القرار (الافتراضية 0.5). وبنقل العتبة، تجرون مفاضلة بين الإحكام والاستدعاء. استخدموا منحنى PR لاختيار عتبة تلبي متطلبات العمل.
import numpy as np
# pick threshold for at least 0.9 precision
idx = np.argmax(prec >= 0.9)
chosen = thresh[idx]
preds = (proba >= chosen).astype(int)تحقق سريع
اختبروا فهمكم للمقاييس.
خلاصة
الخلاصة: ابدؤوا من confusion_matrix. يعاقب الإحكام الإنذارات الكاذبة، ويعاقب الاستدعاء الحالات الفائتة، بينما يوازن F1 بينهما. يقيس roc_auc_score جودة الترتيب؛ ويُعد average_precision_score ومنحنى PR أفضل للبيانات غير المتوازنة. اضبطوا العتبة بما يتوافق مع أولوياتكم.
الأسئلة الشائعة
هل درس «تعمّق في مقاييس التصنيف» مجاني؟
نعم — نص درس «تعمّق في مقاييس التصنيف» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ماذا ستتعلم في «تعمّق في مقاييس التصنيف»؟
مصفوفة الالتباس، والدقة، والاسترجاع، وF1، وROC-AUC، ومنحنى PR — اختيار المقياس المناسب. تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «تعمّق في مقاييس التصنيف»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- استراتيجيات التحقق المتقاطع
- تعمّق في مقاييس التصنيف
- البحث الشبكي والبحث العشوائي
- التحسين البايزي باستخدام Optuna