كيفية حساب درجة f1 في r (مع مثال)


عند استخدام نماذج التصنيف في التعلم الآلي، فإن المقياس الشائع الذي نستخدمه لتقييم جودة النموذج هو درجة F1 .

يتم حساب هذا المقياس على النحو التالي:

نتيجة F1 = 2 * (الدقة * الاستدعاء) / (الدقة + الاستدعاء)

ذهب:

  • الدقة : تصحيح التنبؤات الإيجابية مقارنة بإجمالي التوقعات الإيجابية
  • تذكير : تصحيح التوقعات الإيجابية مقابل مجموع الإيجابيات الفعلية

على سبيل المثال، لنفترض أننا نستخدم نموذج الانحدار اللوجستي للتنبؤ بما إذا كان سيتم ضم 400 لاعب كرة سلة جامعي مختلف إلى الدوري الاميركي للمحترفين أم لا.

تلخص مصفوفة الارتباك التالية التنبؤات التي قدمها النموذج:

فيما يلي كيفية حساب درجة F1 للنموذج:

الدقة = إيجابية حقيقية / (إيجابية حقيقية + إيجابية كاذبة) = 120/ (120+70) = 0.63157

الاستدعاء = إيجابي حقيقي / (إيجابي حقيقي + سلبي كاذب) = 120 / (120+40) = 0.75

نتيجة F1 = 2 * (.63157 * .75) / (.63157 + .75) = . 6857

يوضح المثال التالي كيفية حساب درجة F1 لهذا النموذج الدقيق في R.

مثال: حساب درجة F1 في R

يوضح التعليمة البرمجية التالية كيفية استخدام الدالة fusionMatrix() من حزمة علامة الإقحام في R لحساب درجة F1 (والمقاييس الأخرى) لنموذج انحدار لوجستي محدد:

 library (caret)

#define vectors of actual values and predicted values
actual <- factor(rep(c(1, 0), times=c(160, 240)))
pred <- factor(rep(c(1, 0, 1, 0), times=c(120, 40, 70, 170)))

#create confusion matrix and calculate metrics related to confusion matrix
confusionMatrix(pred, actual, mode = " everything ", positive=" 1 ")

          Reference
Prediction 0 1
         0 170 40
         1 70 120
                                          
               Accuracy: 0.725           
                 95% CI: (0.6784, 0.7682)
    No Information Rate: 0.6             
    P-Value [Acc > NIR]: 1.176e-07       
                                          
                  Kappa: 0.4444          
                                          
 Mcnemar's Test P-Value: 0.005692        
                                          
            Sensitivity: 0.7500          
            Specificity: 0.7083          
         Pos Pred Value: 0.6316          
         Neg Pred Value: 0.8095          
              Accuracy: 0.6316          
                 Recall: 0.7500          
                     F1: 0.6857          
             Prevalence: 0.4000          
         Detection Rate: 0.3000          
   Detection Prevalence: 0.4750          
      Balanced Accuracy: 0.7292          
                                          
       'Positive' Class: 1

نرى أن نتيجة F1 هي 0.6857 . وهذا يطابق القيمة التي حسبناها يدويًا سابقًا.

ملاحظة : نحتاج إلى تحديد الوضع = “كل شيء” حتى يتم عرض نتيجة F1 في الإخراج.

إذا كنت تستخدم درجة F1 لمقارنة نماذج متعددة، فإن النموذج الحاصل على أعلى درجة F1 يمثل النموذج الأفضل قدرة على تصنيف الملاحظات إلى فئات.

على سبيل المثال، إذا قمت بملاءمة نموذج انحدار لوجستي آخر مع البيانات وكان لهذا النموذج درجة F1 تبلغ 0.85، فسيتم اعتبار هذا النموذج أفضل لأنه حصل على درجة F1 أعلى.

مصادر إضافية

كيفية إجراء الانحدار اللوجستي في R
نقاط F1 مقابل الدقة: ما الذي يجب عليك استخدامه؟

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *