วิธีการคำนวณสัมประสิทธิ์สหสัมพันธ์ของแมทธิวส์ใน r


ค่าสัมประสิทธิ์สหสัมพันธ์ของแมทธิวส์ (MCC) เป็นหน่วยเมตริกที่เราสามารถใช้เพื่อประเมินประสิทธิภาพของ แบบจำลองการจำแนกประเภท

มีการคำนวณดังนี้:

MCC = (TP*TN – FP*FN) / √ (TP+FP)(TP+FN)(TN+FP)(TN+FN)

ทอง:

  • TP : จำนวนผลบวกจริง
  • TN : จำนวนผลลบจริง
  • FP : จำนวนผลบวกลวง
  • FN : จำนวนผลลบลวง

หน่วยวัดนี้มีประโยชน์อย่างยิ่งเมื่อทั้งสองคลาสไม่สมดุล กล่าวคือ คลาสหนึ่งปรากฏมากกว่าคลาสอื่นมาก

ค่าของ MCC อยู่ระหว่าง -1 ถึง 1 โดยที่:

  • -1 หมายถึงความขัดแย้งทั้งหมดระหว่างคลาสที่คาดการณ์ไว้และคลาสจริง
  • 0 หมายถึงการเดาสุ่มโดยสมบูรณ์
  • 1 หมายถึงข้อตกลงที่สมบูรณ์ระหว่างคลาสที่คาดการณ์และคลาสจริง

ตัวอย่างเช่น สมมติว่านักวิเคราะห์กีฬาใช้ แบบจำลองการถดถอยลอจิสติกส์ เพื่อคาดการณ์ว่าผู้เล่นบาสเกตบอลระดับวิทยาลัยกว่า 400 คนจะถูกคัดเลือกเข้าสู่ NBA หรือไม่

เมทริกซ์ความสับสนต่อไปนี้สรุปการคาดการณ์ที่ทำโดยแบบจำลอง:

ในการคำนวณ MCC ของแบบจำลอง เราสามารถใช้สูตรต่อไปนี้:

  • MCC = (TP*TN – FP*FN) / √ (TP+FP)(TP+FN)(TN+FP)(TN+FN)
  • MCC = (15*375-5*5) / √ (15+5)(15+5)(375+5)(375+5)
  • MCC = 0.7368

ค่าสัมประสิทธิ์สหสัมพันธ์ของแมทธิวส์กลายเป็น 0.7368

ค่านี้ค่อนข้างใกล้เคียงกับค่าหนึ่ง ซึ่งบ่งชี้ว่าโมเดลทำงานได้ดีในการทำนายว่าผู้เล่นจะถูกดราฟท์หรือไม่

ตัวอย่างต่อไปนี้แสดงวิธีคำนวณ MCC สำหรับสถานการณ์เฉพาะนี้โดยใช้ฟังก์ชัน mcc() จากแพ็คเกจ mltools ใน R

ตัวอย่าง: การคำนวณค่าสัมประสิทธิ์สหสัมพันธ์ของแมทธิวส์ในหน่วย R

รหัสต่อไปนี้แสดงวิธีการกำหนดเวกเตอร์ของคลาสที่คาดการณ์และเวกเตอร์ของคลาสจริง จากนั้นคำนวณค่าสัมประสิทธิ์สหสัมพันธ์ของ Matthews โดยใช้ฟังก์ชัน 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

ซึ่งตรงกับค่าที่เราคำนวณด้วยตนเองก่อนหน้านี้

หากคุณต้องการคำนวณสัมประสิทธิ์สหสัมพันธ์ของแมทธิวส์สำหรับเมทริกซ์ความสับสน คุณสามารถใช้อาร์กิวเมนต์ ความสับสนM ได้ดังนี้:

 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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *