วิธีการคำนวณสัมประสิทธิ์สหสัมพันธ์ของแมทธิวส์ใน 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