اذهب إلى المحتوى
  • 0

حساب ال Precision و  Recall باستخدام مكتبة scikit-learn

Meezo ML

السؤال

Recommended Posts

  • 1

هما معياران لقياس كفاءة نماذج التصنيف Classifications.
أولاً: Precision
هو نسبة (المتوقع) الإيجابي الصحيح على نسبة (((المتوقع))) الإيجابي الكلي ويعبر عنه بالعلاقة التالية:
Precision = TP/(TP+FP)
لاحظ أن البسط يعبر عن كل العينات التي قال عنها نموذجنا أنها P وهي بالغعل P.
لاحظ أن المقام  (TP+FP) يشير إلى كل العينات التي اعتبرها نموذجنا P سواءاً أكان التوقع صحيح أم لا.
ويمكن أن نعبر عنه بالصيغة؟ كم هي عدد العينات التي توقع النموذج أنها + وكانت بالفعل + من بين كل التوقعات التي توقع أنها +.
لتطبيقه باستخددام scikit-learn نستخدم الصيغة التالية:

sklearn.metrics.precision_score(y_true, y_pred)

مثال:

from sklearn.metrics import precision_score
y_pred = [0, 1, 0, 1,0,1]   # بفرض أن القيم المتوقعة كانت 
y_true = [0, 1, 0, 1,1,1]    #  بفرض أن القيم الحقيقية كانت 

# يكون الناتج
precision=precision_score(y_true, y_pred)
# لطباعة الناتج كنسبة مئوية 
print(str(precision*100)+'%',sep='')   

ثانياً: Recall 
هي كل (التوقعات) الإيجابية الصحيحة مقسومة على العدد الكلي للحالات الإيجابية.
Recall = TP/(TP+FN)
البسط لم يتغير.
المقام تم استبدال FP ب FN ليصبح (TP+FN) ويشير إلى عدد العينات الإيجابية كلها التي اكتشفها النموذج والتي  لم يكتشفها أصلاً.

sklearn.metrics.recall_score(y_true, y_pred)

مثال:

from sklearn.metrics import recall_score
y_pred = [0, 1, 0, 1,0,1]   # بفرض أن القيم المتوقعة كانت 
y_true = [0, 1, 0, 1,1,1]    #  بفرض أن القيم الحقيقية كانت 

# يكون الناتج
recall=recall_score(y_true, y_pred)
# لطباعة الناتج كنسبة مئوية 
print(str(recall*100)+'%',sep='')   # 75.0%

# للتنويه: الرابط التالي يحوي شرح لمفاهيم TPو TN والبقية:

 

تم التعديل في بواسطة Ali Haidar Ahmad
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

ملاحظة إضافية: 
Precision تسمى أيضاً Specificity
Recall  تسمى أيضاً Sensitivity 
والعلاقة بينهما عكسية أي أن زيادة أحدهما تعني نقصان الآخر.
وهدفنا يكون الحصول على أعلى قيم لهما دوماً، لذلك يجب الموازنة (Trade off) بين قيمهما.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...