كيفية حساب معامل ارتباط ماثيوز في r


معامل ارتباط ماثيوز (MCC) هو مقياس يمكننا استخدامه لتقييم أداء نموذج التصنيف .

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

مركز عملائي = (TP*TN – FP*FN) / √ (TP+FP)(TP+FN)(TN+FP)(TN+FN)

ذهب:

  • TP : عدد النتائج الإيجابية الحقيقية
  • TN : عدد السلبيات الحقيقية
  • FP : عدد النتائج الإيجابية الكاذبة
  • FN : عدد النتائج السلبية الكاذبة

يكون هذا المقياس مفيدًا بشكل خاص عندما تكون الفئتان غير متوازنتين، أي أن إحدى الفئتين تظهر أكثر بكثير من الأخرى.

تتراوح قيمة مركز عملائي بين -1 و1 حيث:

  • -1 يشير إلى الخلاف التام بين الفصول المتوقعة والفصول الفعلية
  • 0 يعني تخمينات عشوائية تمامًا
  • يشير الشكل 1 إلى الاتفاق الكامل بين الفئات المتوقعة والفصول الفعلية

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

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

لحساب مركز عملائي (MCC) للنموذج، يمكننا استخدام الصيغة التالية:

  • مركز عملائي = (TP*TN – FP*FN) / √ (TP+FP)(TP+FN)(TN+FP)(TN+FN)
  • مركز عملائي = (15*375-5*5) / √ (15+5)(15+5)(375+5)(375+5)
  • مركز عملائي = 0.7368

وتبين أن معامل ارتباط ماثيوز هو 0.7368 .

هذه القيمة قريبة إلى حد ما من الواحد، مما يشير إلى أن النموذج يقوم بعمل جيد في التنبؤ بما إذا كان سيتم تجنيد اللاعبين أم لا.

يوضح المثال التالي كيفية حساب مركز عملائي (MCC) لهذا السيناريو المحدد باستخدام وظيفة mcc() من حزمة mltools في R.

مثال: حساب معامل ارتباط ماثيوز في R

يوضح التعليمة البرمجية التالية كيفية تحديد متجه الفئات المتوقعة ومتجه الفئات الفعلية، ثم حساب معامل ارتباط ماثيوز باستخدام وظيفة mcc() من حزمة mltools :

 library (mltools)

#define vector of actual classes
actual <- rep (c(1, 0), times =c(20, 380))

#define vector of predicted classes
preds <- rep (c(1, 0, 1, 0), times =c(15, 5, 5, 375))

#calculate Matthews correlation coefficient
mcc(preds, actual)

[1] 0.7368421

معامل ارتباط ماثيوز هو 0.7368 .

وهذا يطابق القيمة التي حسبناها يدويًا سابقًا.

إذا كنت تريد حساب معامل ارتباط ماثيوز لمصفوفة الارتباك، فيمكنك استخدام وسيطة الارتباك كما يلي:

 library (mltools)

#create confusion matrix
conf_matrix <- matrix(c(15, 5, 5, 375), nrow= 2 )

#view confusion matrix
conf_matrix

     [,1] [,2]
[1,] 15 5
[2,] 5,375

#calculate Matthews correlation coefficient for confusion matrix
mcc(confusionM = conf_matrix)

[1] 0.7368421

مرة أخرى، معامل ارتباط ماثيوز هو 0.7368.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:

كيفية إجراء الانحدار اللوجستي في R
كيفية رسم منحنى ROC باستخدام ggplot2
كيفية حساب درجة F1 في R

Add a Comment

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