เมทริกซ์ความสับสนในแมชชีนเลิร์นนิงพร้อมตัวอย่าง

⚡ สรุปอย่างชาญฉลาด

เมทริกซ์ความสับสน (Confusion matrix) คือตารางวัดประสิทธิภาพสำหรับแบบจำลองการจำแนกประเภท ซึ่งเปรียบเทียบป้ายกำกับที่คาดการณ์ไว้กับป้ายกำกับจริงที่ทราบแล้ว เพื่อแสดงให้เห็นอย่างชัดเจนว่าตัวจำแนกประเภทจำแนกคลาสใดได้ถูกต้อง และคลาสใดที่จำแนกผิดพลาด

  • 🔘 ผลลัพธ์สี่ประการ: ค่าบวกจริง ค่าลบจริง ค่าบวกเท็จ และค่าลบเท็จ จะบรรจุอยู่ในทุกช่องของเมทริกซ์ไบนารี
  • ☑️ ประเภทของข้อผิดพลาด: ผลบวกเท็จเป็นความผิดพลาดประเภทที่ 1 ในขณะที่ผลลบเท็จเป็นความผิดพลาดประเภทที่ 2
  • ✅ ตัวชี้วัดที่ได้มา: ความถูกต้องแม่นยำ ความเที่ยงตรง การเรียกคืนข้อมูล ความจำเพาะ และคะแนน F1 ล้วนมาจากการนับสี่อย่างเดียวกัน
  • 🧪 นอกเหนือจากความแม่นยำ: ในข้อมูลที่ไม่สมดุล ความแม่นยำของแบบจำลองอาจดูดีเกินจริง ในขณะที่เมทริกซ์จะแสดงให้เห็นว่าแบบจำลองนั้นล้มเหลวในคลาสใดบ้าง
  • 🛠️ มุมมองหลายคลาส: คลาสจำนวน N คลาสจะสร้างตารางขนาด N×N โดยที่แนวทแยงมุมจะเก็บค่าการทำนายที่ถูกต้องทั้งหมด
  • ⚙️ Python เส้นทาง: scikit-learn สร้างตารางเดียวกันได้ในสองบรรทัดโดยใช้ confusion_matrix() และ classification_report()

เมทริกซ์ความสับสนในแมชชีนเลิร์นนิง พร้อมตัวอย่าง

Confusion Matrix คืออะไร?

A เมทริกซ์ความสับสน เป็นเทคนิคการวัดประสิทธิภาพสำหรับ เรียนรู้เครื่อง การจำแนกประเภท คือ ตารางที่แสดงให้เห็นว่าแบบจำลองการจำแนกประเภททำงานอย่างไรกับชุดข้อมูลทดสอบซึ่งทราบค่าที่แท้จริงอยู่แล้ว คำว่าเมทริกซ์ความสับสนนั้นเข้าใจง่าย แต่คำศัพท์ที่ใช้ประกอบอาจทำให้สับสนได้ ดังนั้นแต่ละส่วนจึงได้รับการอธิบายด้านล่างด้วยภาษาที่เข้าใจง่าย

เมทริกซ์นี้ใช้ได้กับทุกสิ่ง ตัวจำแนกแบบมีผู้กำกับดูแล — การถดถอยโลจิสติกส์, แผนผังการตัดสินใจ, โมเดลไร้เดียงสา Bayes หรือ โครงข่ายประสาทลึก — เพราะมันเปรียบเทียบเพียงสองคอลัมน์ของป้ายกำกับเท่านั้น: สิ่งที่แบบจำลองคาดการณ์ไว้และสิ่งที่เกิดขึ้นจริง

ผลลัพธ์สี่ประการของเมทริกซ์ความสับสน

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

ตารางแสดงความสับสนแบบไบนารี แสดงควอดแรนต์ TP, FP, FN และ TN
ตารางความสับสน

ตารางด้านบนแสดงแผนผังของช่องสี่เหลี่ยมทั้งสี่ช่องที่เมทริกซ์ความสับสนแบบไบนารีทุกเมทริกซ์ประกอบด้วย:

  • TP: True Positive: ค่าที่คาดการณ์ไว้ถูกต้องตรงกับค่าบวกจริง
  • FP: ผลบวกเท็จ: ค่าที่คาดการณ์ไว้ถูกคาดการณ์ผิดพลาดว่าเป็นค่าบวก เช่น ค่าลบถูกคาดการณ์ว่าเป็นค่าบวก
  • FN: ผลลัพธ์เชิงลบเท็จ: ค่าบวกถูกทำนายว่าเป็นค่าลบ
  • TN: True Negative: ค่าที่คาดการณ์ไว้ถูกทำนายได้อย่างถูกต้องว่าเป็นค่าลบจริง

สถิติจะตั้งชื่อให้กับเซลล์ข้อผิดพลาดทั้งสองเซลล์ ผลบวกเท็จคือ... ข้อผิดพลาดประเภทที่ XNUMX — แบบจำลองส่งสัญญาณเตือนที่ไม่ควรส่งสัญญาณเตือนตั้งแต่แรก ผลลัพธ์ที่เป็นเท็จเชิงลบคือ... ข้อผิดพลาดประเภท II — โมเดลนั้นเงียบสนิทในขณะที่ควรจะส่งสัญญาณเตือน การรู้ว่าวิธีใดมีค่าใช้จ่ายสูงกว่าสำหรับปัญหาของคุณ จะเป็นตัวกำหนดว่าคุณควรปรับแต่งตัวชี้วัดใดในภายหลัง

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

สูตรความแม่นยำที่ได้มาจากผลลัพธ์ของเมทริกซ์ความสับสนทั้งสี่

ตัวอย่างเมทริกซ์ความสับสน

เมทริกซ์ความสับสน (Confusion Matrix) เป็นวิธีการเรียนรู้ของเครื่องที่มีประโยชน์ ซึ่งช่วยให้คุณสามารถวัดค่า Recall, Precision, Accuracy และเส้นโค้ง AUC-ROC ได้ ตัวอย่างฟุตบอลด้านล่างแสดงให้เห็นความหมายของคำว่า True Positive, True Negative, False Positive และ False Negative ในภาษาพูดทั่วไป

ผลบวกที่แท้จริง:

คุณทำนายได้ถูกต้องและมันก็เป็นจริง ตัวอย่างเช่น คุณทำนายว่าฝรั่งเศสจะคว้าแชมป์ฟุตบอลโลก และพวกเขาก็ชนะจริงๆ

เชิงลบจริง:

คุณทำนายผลลบ และนั่นก็เป็นความจริง คุณทำนายว่าอังกฤษจะไม่ชนะ และพวกเขาก็แพ้จริงๆ

บวกเท็จ:

การทำนายของคุณเป็นบวกและเป็นเท็จ

คุณเคยทำนายว่าอังกฤษจะชนะ แต่สุดท้ายก็แพ้

ลบเท็จ:

การคาดการณ์ของคุณเป็นไปในเชิงลบ และผลลัพธ์ก็ยืนยันว่าเป็นเท็จ

คุณทำนายไว้ว่าฝรั่งเศสจะไม่ชนะ แต่ก็ชนะ

โปรดจำไว้ว่าคำแรกจะอธิบายว่าการคาดการณ์นั้นถูกต้องหรือผิด (จริงหรือเท็จ) และคำที่สองจะอธิบายว่าแบบจำลองคาดการณ์อะไร (บวกหรือลบ)

วิธีการคำนวณเมทริกซ์ความสับสน

นี่คือขั้นตอนการคำนวณเมทริกซ์ความสับสนทีละขั้นตอนในภาษาโปรแกรม การทำเหมืองข้อมูล:

  • ขั้นตอน 1) ขั้นแรก คุณต้องมีชุดข้อมูลทดสอบพร้อมกับค่าผลลัพธ์ที่คาดหวัง
  • ขั้นตอน 2) ทำนายค่าในทุกแถวของชุดข้อมูลทดสอบ
  • ขั้นตอน 3) เปรียบเทียบผลลัพธ์ที่คาดหวังกับการคาดการณ์ และนับจำนวน:
    1. รวมคำทำนายที่ถูกต้องของแต่ละคลาส
    2. ผลรวมคำทำนายผิดของแต่ละคลาส

หลังจากนั้นตัวเลขเหล่านี้จะถูกจัดเรียงตามวิธีดังต่อไปนี้:

  • แต่ละแถวของเมทริกซ์สอดคล้องกับชั้นเรียนจริง
  • แต่ละคอลัมน์ของเมทริกซ์เชื่อมโยงกับคลาสที่คาดการณ์ไว้
  • จำนวนรวมของการจำแนกประเภทที่ถูกต้องและไม่ถูกต้องจะถูกป้อนลงในตาราง
  • ผลรวมของการทำนายที่ถูกต้องสำหรับแต่ละคลาสจะถูกใส่ลงในเซลล์ที่แถวจริงของคลาสนั้นมาบรรจบกับคอลัมน์ที่ทำนายไว้ของคลาสนั้นเอง ซึ่งก็คือแนวทแยงมุม
  • ผลรวมของการทำนายที่ไม่ถูกต้องสำหรับแต่ละคลาสจะถูกบันทึกไว้ในแถวจริงสำหรับค่าของคลาสนั้น และในคอลัมน์ที่ทำนายไว้ของคลาสใดก็ตามที่แบบจำลองเลือกแทน

บทบาทของแถวและคอลัมน์เป็นเพียงข้อตกลงมากกว่ากฎเกณฑ์ตายตัว และเครื่องมือสร้างกราฟบางอย่างอาจสลับตำแหน่งการจัดเรียง ดังนั้นควรอ่านป้ายกำกับแกนก่อนตีความเมทริกซ์เสมอ การจัดเรียงที่ใช้ในที่นี้ — ค่าจริงอยู่บนแถว ค่าที่คาดการณ์อยู่บนคอลัมน์ — เป็นการจัดเรียงที่ scikit-learn สร้างขึ้น

ข้อกำหนดสำคัญอื่น ๆ ที่ใช้เมทริกซ์ความสับสน

เมื่อกำหนดจำนวนทั้งสี่แล้ว กลุ่มของคำศัพท์รองจะใช้อธิบายส่วนต่างๆ ของตารางเดียวกัน:

  • ค่าความแม่นยำในการทำนายผลบวก (PPV): นี่ใกล้เคียงกับความแม่นยำมาก ความแตกต่างที่สำคัญอย่างหนึ่งระหว่างสองคำนี้คือ PPV จะคำนึงถึงความชุกของโรคด้วย ในสถานการณ์ที่กลุ่มต่างๆ มีความสมดุลกันอย่างสมบูรณ์ ค่าการทำนายเชิงบวกจะเท่ากับความแม่นยำ
  • อัตราความผิดพลาดเป็นศูนย์: คำนี้ใช้กำหนดความถี่ที่การทำนายของคุณจะผิดพลาด หากคุณทำนายคลาสส่วนใหญ่เสมอ คุณสามารถใช้เป็นตัวชี้วัดพื้นฐานเพื่อเปรียบเทียบกับตัวจำแนกของคุณได้
  • คะแนนเอฟ: ค่า F1 คือค่าเฉลี่ยถ่วงน้ำหนักของอัตราการตรวจพบที่ถูกต้อง (recall) และความแม่นยำ (precision)
  • เส้นโค้ง ROC: กราฟ ROC แสดงอัตราการตรวจพบที่ถูกต้องเทียบกับอัตราการตรวจพบที่ผิดพลาด ณ จุดตัดต่างๆ นอกจากนี้ยังแสดงให้เห็นถึงความสมดุลระหว่างความไว (การเรียกคืน) และความจำเพาะ ซึ่งก็คืออัตราการตรวจไม่พบที่ถูกต้อง
  • ความแม่นยำ: เมตริกความแม่นยำแสดงความแม่นยำของคลาสที่เป็นบวก โดยจะวัดว่าการทำนายคลาสเชิงบวกมีความเป็นไปได้เพียงใด

สูตรความแม่นยำ: จำนวนผลตรวจถูกต้องหารด้วยจำนวนผลตรวจถูกต้องบวกผลตรวจผิดพลาด

คะแนนสูงสุดคือ 1 เมื่อตัวจำแนกจำแนกค่าบวกทั้งหมดได้อย่างสมบูรณ์แบบ ความแม่นยำ (Precision) เพียงอย่างเดียวไม่ค่อยมีประโยชน์ เพราะมันละเลยคลาสที่เป็นลบ โดยปกติแล้วตัวชี้วัดนี้จะใช้คู่กับตัวชี้วัดการเรียกคืน (Recall) การเรียกคืนเรียกอีกอย่างว่าความไว (Sensitivity) หรืออัตราการตรวจพบที่ถูกต้อง (True Positive Rate) และเขียนได้ดังที่แสดงด้านล่าง

  • ความไวแสง: ค่าความไว (Sensitivity) คำนวณอัตราส่วนของคลาสบวกที่ตรวจจับได้อย่างถูกต้อง ตัวชี้วัดนี้แสดงให้เห็นว่าโมเดลมีความสามารถในการจดจำคลาสบวกได้ดีเพียงใด

สูตรความไว: จำนวนผลบวกที่ถูกต้องหารด้วยจำนวนผลบวกที่ถูกต้องบวกผลลบที่ผิดพลาด

ตัวชี้วัดและสูตรของเมทริกซ์ความสับสน

ตัวชี้วัดทั้งหมดข้างต้นเป็นการคำนวณทางคณิตศาสตร์บนตัวแปรสี่ตัวเดียวกัน ดังนั้นการดูตัวชี้วัดเหล่านั้นควบคู่ไปกับคำถามที่แต่ละตัวชี้วัดตอบจะช่วยให้เข้าใจได้ง่ายขึ้น

เมตริก สูตร คำถามมันตอบ ใช้เมื่อ
ความถูกต้อง (TP + TN) / (TP + TN + FP + FN) โดยรวมแล้วมีคำทำนายที่ถูกต้องกี่ข้อ? สัดส่วนของชั้นเรียนค่อนข้างสมดุลกัน
ความแม่นยำ ทีพี / (ทีพี + เอฟพี) เมื่อแบบจำลองบอกว่าผลลัพธ์เป็นบวก บ่อยแค่ไหนที่มันถูกต้อง? สัญญาณเตือนภัยที่ผิดพลาดนั้นมีค่าใช้จ่ายสูง
เรียกคืน (ความไว) ทีพี / (TP + เอฟเอ็น) จากผลตรวจที่เป็นบวกทั้งหมด ตรวจพบได้กี่ราย? การพลาดผลตรวจที่เป็นบวกนั้นมีค่าใช้จ่ายสูง
ความจำเพาะ ธ.ก. / (ธ.ก. + ฟ.ป.) จากผลลบทั้งหมด มีกี่รายการที่ได้รับการแก้ไข? ชนชั้นเชิงลบก็มีความสำคัญเช่นกัน
คะแนน F1 2 × (ความแม่นยำ × การเรียกคืน) / (ความแม่นยำ + การเรียกคืน) อะไรคือจุดสมดุลระหว่างสองสิ่งนี้? คุณต้องใช้หมายเลขเดียวสำหรับทั้งสองอย่าง

ลองใช้ตัวกรองสแปมที่ทดสอบกับอีเมล 100 ฉบับ ซึ่งให้ผลลัพธ์ TP = 45, FN = 5, FP = 10 และ TN = 40 ความแม่นยำคือ (45 + 40) / 100 = 0.85 ความเที่ยงตรงคือ 45 / (45 + 10) = 0.82 การเรียกคืนคือ 45 / (45 + 5) = 0.90 และความจำเพาะคือ 40 / (40 + 10) = 0.80 ค่า F1 เท่ากับ 0.86

ตัวเลขเหล่านั้นบอกเล่าเรื่องราวที่ตัวเลขความแม่นยำเพียงตัวเดียวปกปิดไว้: ตัวกรองดักจับสแปมจริงได้ 90 เปอร์เซ็นต์ แต่กักกันอีเมลที่ถูกต้อง 1 ใน 5 ที่ถูกระบุว่าเป็นสแปมโดยไม่ถูกต้อง การแลกเปลี่ยนนี้เป็นที่ยอมรับได้หรือไม่นั้นขึ้นอยู่กับต้นทุนของข้อผิดพลาดแต่ละครั้ง ซึ่งเป็นเหตุผลว่าทำไมจึงมีการรายงานเมทริกซ์แทนที่จะรายงานเฉพาะความแม่นยำเพียงอย่างเดียว

เมทริกซ์ความสับสนสำหรับการจำแนกประเภทหลายคลาส

ปัญหาการจำแนกประเภทมักไม่หยุดอยู่ที่ป้ายกำกับสองป้าย และเมทริกซ์จะปรับขนาดโดยไม่เปลี่ยนรูปร่าง สำหรับคลาส N คลาส ตารางจะกลายเป็นตารางกริด N×N: แนวทแยงมุมจะเก็บการทำนายที่ถูกต้องทั้งหมด และแต่ละเซลล์นอกแนวทแยงมุมจะบันทึกว่าคลาสใดถูกเข้าใจผิดว่าเป็นคลาสใด

แบบจำลองสามคลาสที่จัดเรียงภาพเป็นแมว สุนัข และกระต่าย จะสร้างตาราง 3×3 ขึ้นมา ถ้าเซลล์ในแถว "แมว" คอลัมน์ "สุนัข" มีค่าเท่ากับ 12 นั่นหมายความว่ามีภาพแมว 12 ภาพที่ถูกระบุว่าเป็นภาพสุนัข รายละเอียดในระดับนี้เองที่ทำให้เมทริกซ์มีประโยชน์มากกว่าคะแนน เพราะมันระบุคู่คลาสที่เฉพาะเจาะจงซึ่งแบบจำลองไม่สามารถแยกแยะได้

ค่าความแม่นยำ (Precision), ค่าการเรียกคืน (Recall) และค่า F1 ถูกกำหนดสำหรับแต่ละคลาสโดยใช้มุมมองแบบหนึ่งต่อส่วนที่เหลือ (one-vs-rest view) โดยที่คลาสที่กำลังพิจารณาเป็นคลาสบวก และส่วนที่เหลือทั้งหมดเป็นคลาสลบ จากนั้นจึงนำค่าตัวเลขต่อคลาสมารวมกันในหนึ่งในสามวิธีดังต่อไปนี้:

  • ค่าเฉลี่ยระดับมหภาค: คำนวณค่าเมตริกสำหรับแต่ละคลาสอย่างอิสระ จากนั้นจึงหาค่าเฉลี่ยที่ไม่ถ่วงน้ำหนัก ทุกคลาสมีค่าเท่ากัน ดังนั้นคลาสที่หายากจะไม่ถูกบดบัง
  • ค่าเฉลี่ยไมโคร: รวบรวมจำนวน TP, FP และ FN จากทุกคลาสก่อนคำนวณค่าเมตริก คลาสขนาดใหญ่จะมีอิทธิพลมากกว่า และสำหรับปัญหาที่มีป้ายกำกับเดียว ค่าความแม่นยำระดับไมโคร ค่าการเรียกคืนระดับไมโคร และค่าความถูกต้องจะเท่ากัน
  • ค่าเฉลี่ยถ่วงน้ำหนัก: คำนวณค่าเฉลี่ยของคะแนนต่อคลาส โดยใช้จำนวนอินสแตนซ์จริงของแต่ละคลาสเป็นน้ำหนัก ซึ่งจะช่วยให้เห็นความไม่สมดุลของคลาสได้ชัดเจน

เลือกใช้มาโครเมื่อทุกคลาสมีความสำคัญเท่ากัน และเลือกใช้แบบถ่วงน้ำหนักเมื่อการกระจายของคลาสสะท้อนถึงปริมาณการใช้งานจริง

วิธีการสร้างเมทริกซ์ความสับสนใน Python

ไลบรารี scikit-learn สร้างตารางทั้งหมดจากอาร์เรย์ป้ายกำกับสองชุด ดังนั้นจึงไม่จำเป็นต้องนับด้วยตนเอง ตัวอย่างด้านล่างเปรียบเทียบป้ายกำกับจริงสิบรายการกับผลการทำนายสิบรายการ

from sklearn.metrics import confusion_matrix

y_true = [1, 0, 1, 1, 0, 1, 0, 0, 1, 0]
y_pred = [1, 0, 1, 0, 0, 1, 1, 0, 1, 0]

cm = confusion_matrix(y_true, y_pred)
print(cm)

ฟังก์ชันนี้จะส่งคืนอาร์เรย์ NumPy ขนาด 2×2 โดยที่แถวที่ 0 คือคลาสลบจริง และแถวที่ 1 คือคลาสบวกจริง:

[[4 1]
 [1 4]]

การอ่านอาร์เรย์โดยใช้รูปแบบตามมาตรฐาน scikit-learn จะได้ค่า TN = 4 (บนซ้าย), FP = 1 (บนขวา), FN = 1 (ล่างซ้าย) และ TP = 4 (ล่างขวา) การแยกค่าทั้งสี่นี้ออกมาไว้ในบรรทัดเดียวจะทำให้ได้แผนที่ (map)ping ชัดเจน:

tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()

เพื่อให้ได้ค่าความแม่นยำ ค่าการเรียกคืน และค่า F1 สำหรับทุกคลาสพร้อมกัน รวมถึงค่าเฉลี่ยแบบมาโครและค่าเฉลี่ยถ่วงน้ำหนักที่อธิบายไว้ข้างต้น ให้เรียกใช้ฟังก์ชันต่อไปนี้ classification_report() แทนที่จะคำนวณแต่ละตัวชี้วัดด้วยมือ:

from sklearn.metrics import classification_report

print(classification_report(y_true, y_pred))

สำหรับเวอร์ชันที่มีการวางพล็อต ConfusionMatrixDisplay.from_predictions(y_true, y_pred) แสดงผลตารางเดียวกันในรูปแบบฮีทแมปที่มีป้ายกำกับ รายการอาร์กิวเมนต์ทั้งหมด รวมถึง labels และ normalize ตัวเลือกต่างๆ ได้รับการบันทึกไว้ในเอกสาร เอกสารอ้างอิง scikit-learn confusion_matrixขั้นตอนการประเมินเดียวกันนี้ใช้กับโมเดลที่สร้างด้วย TensorFlowเนื่องจากตัวชี้วัดนี้ขึ้นอยู่กับป้ายกำกับที่คาดการณ์ไว้เท่านั้น

ทำไมคุณถึงต้องการเมทริกซ์ความสับสน?

ต่อไปนี้คือข้อดีและประโยชน์ของการใช้เมทริกซ์ความสับสน

  • ภาพนี้แสดงให้เห็นว่าแบบจำลองการจำแนกประเภทเกิดความสับสนได้อย่างไรเมื่อทำการทำนาย
  • เมทริกซ์ความสับสนช่วยให้คุณเข้าใจไม่เพียงแค่ข้อผิดพลาดที่ตัวจำแนกของคุณทำเท่านั้น แต่ยังรวมถึงประเภทของข้อผิดพลาดที่เกิดขึ้นด้วย
  • การวิเคราะห์เชิงลึกนี้จะช่วยให้คุณเอาชนะข้อจำกัดของการใช้ความแม่นยำในการจำแนกประเภทเพียงอย่างเดียวได้
  • ทุกคอลัมน์ของเมทริกซ์ความสับสนแสดงถึงอินสแตนซ์ของคลาสที่ทำนายนั้น
  • แต่ละแถวของเมทริกซ์ความสับสนแสดงถึงอินสแตนซ์ของคลาสจริง
  • มันเปลี่ยนการประเมินโมเดลให้เป็นการวินิจฉัย โดยชี้ไปยังคู่คลาสเฉพาะที่ต้องการข้อมูลเพิ่มเติมหรือคุณลักษณะที่ดีกว่า

คุณค่าในการวินิจฉัยนี้เองที่เป็นเหตุผลว่าทำไมเมทริกซ์ความสับสนจึงอยู่ใจกลางขั้นตอนการประเมินผลในทุกๆ ด้าน วิทยาศาสตร์ข้อมูล ขั้นตอนการทำงาน และเหตุผลที่มักเป็นตารางแรกที่ได้รับการตรวจสอบก่อนที่ตัวจำแนกประเภทจะถูกส่งไปใช้งานจริง

คำถามที่พบบ่อย

หากมีข้อมูลปลอมเพียง 2 เปอร์เซ็นต์ โมเดลที่ทำนายว่า “ไม่ใช่การฉ้อโกง” ทุกครั้งจะมีความแม่นยำ 98 เปอร์เซ็นต์ ในขณะที่ไม่สามารถตรวจจับข้อมูลปลอมได้เลย เมทริกซ์จะเปิดเผยเซลล์ที่มีค่าบวกจริงว่างเปล่าทันที ซึ่งเป็นเหตุผลว่าทำไมค่าการเรียกคืน (recall) จึงมีความสำคัญมากกว่าความแม่นยำ (accuracy) ในข้อมูลที่มีการบิดเบือน

เมทริกซ์แบบนอร์มาไลซ์แสดงสัดส่วนแทนจำนวนนับดิบ โดยปกติจะหารแต่ละเซลล์ด้วยผลรวมของแถวนั้น ทำให้กลุ่มที่มีขนาดแตกต่างกันมากสามารถเปรียบเทียบกันได้อย่างรวดเร็ว แต่จะซ่อนขนาดของกลุ่มตัวอย่างไว้ ดังนั้นควรรายงานทั้งสองแบบเมื่อกลุ่มไม่สมดุลกัน

สร้างเมทริกซ์ขึ้นใหม่โดยใช้ค่าความน่าจะเป็นหลายค่า แล้วสังเกตการเปลี่ยนแปลง การลดค่าเกณฑ์จะทำให้ข้อมูลจากช่องผลลบเท็จย้ายไปยังช่องผลบวกจริง ซึ่งจะเพิ่มค่ารีคอล แต่ก็เพิ่มค่าผลบวกเท็จด้วย เลือกค่าเกณฑ์ที่ต้นทุนของส่วนผสมข้อผิดพลาดที่เหลืออยู่น้อยที่สุด

ไม่ เมทริกซ์นับจำนวนการจับคู่ป้ายกำกับแบบไม่ต่อเนื่อง ดังนั้นจึงจำเป็นต้องมีหมวดหมู่ ผลลัพธ์ของการถดถอยเป็นค่าต่อเนื่องและถูกประเมินด้วยมาตรวัดข้อผิดพลาด เช่น ค่าความคลาดเคลื่อนสัมบูรณ์เฉลี่ย หรือค่า R-squared การแบ่งเป้าหมายต่อเนื่องออกเป็นช่วงๆ จึงเป็นวิธีเดียวที่จะทำให้เมทริกซ์มีความหมาย

โดยปกติแล้ว การตรวจซ้ำมักจะได้ผลดีกว่า เพราะการวินิจฉัยผิดพลาดมีค่าใช้จ่ายสูงกว่าการตรวจติดตามที่ไม่จำเป็นมาก ดังนั้น เครื่องมือคัดกรองจึงถูกปรับแต่งเพื่อให้มีโอกาสเกิดผลลบเท็จน้อยที่สุด และยอมรับผลบวกเท็จที่เพิ่มขึ้น ซึ่งการตรวจยืนยันจะช่วยกรองออกได้ในภายหลัง

เครื่องมือประเมินโมเดลอัตโนมัติในปัจจุบันจะสแกนทุกเซลล์นอกแนวทแยงมุม จัดอันดับความสับสนที่ก่อให้เกิดต้นทุนสูงสุด และแนะนำว่าคลาสใดต้องการข้อมูลการฝึกอบรมเพิ่มเติมหรือป้ายกำกับที่รวมกัน นอกจากนี้ยังทำการตรวจสอบค่าเกณฑ์โดยอัตโนมัติ เปลี่ยนการเปรียบเทียบเมทริกซ์ด้วยตนเองให้เป็นการจัดอันดับรายการย่อ

นักบิน GitHub ร่างการนำเข้า การเรียกใช้เมตริก และแผนภูมิฮีทแมปจากความคิดเห็นสั้นๆ ถือว่าร่างนี้เป็นเพียงจุดเริ่มต้น — ตรวจสอบลำดับแกนและข้อโต้แย้งเกี่ยวกับป้ายกำกับที่เป็นบวกด้วยตนเองเสมอ เพราะเมทริกซ์ที่สลับแถวและคอลัมน์จะกลับข้อสรุปทุกอย่าง

มีขนาดใหญ่พอที่คลาสที่หายากที่สุดจะยังคงมีจำนวนที่ใช้งานได้อยู่ในแถวนั้น — การใช้ตัวอย่างเพียงไม่กี่ตัวอย่างจะทำให้ค่าเมตริกผันผวนอย่างมากระหว่างการทดสอบ การตรวจสอบแบบไขว้ (Cross-validation) ซึ่งเป็นการรวมเมทริกซ์จากส่วนต่างๆ จะให้ภาพที่เสถียรกว่าการแบ่งตัวอย่างออกเป็นส่วนเล็กๆ เพียงส่วนเดียว

สรุปโพสต์นี้ด้วย: