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


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

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

รหัสต่อไปนี้แสดงวิธีการกำหนดอาร์เรย์ของคลาสที่คาดการณ์และอาร์เรย์ของคลาสจริง จากนั้นคำนวณค่าสัมประสิทธิ์สหสัมพันธ์ของแมทธิวส์ของแบบจำลองใน Python:

 import numpy as np
from sklearn. metrics import matthews_corrcoef

#define array of actual classes
actual = np. repeat ([1, 0], repeats=[20, 380])

#define array of predicted classes
pred = np. repeat ([1, 0, 1, 0], repeats=[15, 5, 5, 375])

#calculate Matthews correlation coefficient
matthews_corrcoef(actual, pred)

0.7368421052631579

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

หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มสำหรับฟังก์ชัน matthews_corrcoef() ได้ที่นี่

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีคำนวณหน่วยวัดทั่วไปอื่นๆ สำหรับโมเดลการจัดหมวดหมู่ใน Python:

ข้อมูลเบื้องต้นเกี่ยวกับการถดถอยโลจิสติกใน Python
วิธีคำนวณคะแนน F1 ใน Python
วิธีการคำนวณความแม่นยำที่สมดุลใน Python

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

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