อธิบายความซับซ้อนของเมทริกซ์ความสับสนในการเรียนรู้ของเครื่อง [น่าอัศจรรย์]
เผยแพร่แล้ว: 2020-12-07การเรียนรู้ของเครื่องเป็นคำศัพท์ในร่มที่รวบรวมการประมวลผลข้อมูล ได้มาซึ่งข้อมูลเชิงลึกที่มีความหมายจากข้อมูล และการสร้างแบบจำลองข้อมูล หลังจากเสร็จสิ้นการสร้างแบบจำลองข้อมูลแล้ว แบบจำลองจะต้องมีการวัดสำหรับการประเมินประสิทธิภาพ และพารามิเตอร์ตามอุตสาหกรรมอื่นๆ และหนึ่งในตัวชี้วัดที่พบบ่อยที่สุดคือ Confusion Matrix
สารบัญ
Confusion Matrix คืออะไรและทำไมจึงใช้
เป็นตัวชี้วัดประสิทธิภาพที่ใช้ในปัญหาการจำแนกประเภท โดยที่คลาสเอาต์พุตอาจมีตั้งแต่สองตัวขึ้นไป และเมทริกซ์นี้แสดงถึงการรวมกันของค่าที่คาดการณ์ไว้ทั้งหมดโดยโมเดลที่มีค่าจริงที่เกี่ยวข้องกับอินพุตนั้น เรียกว่า 'เมทริกซ์ความสับสน' เพราะการทำตามคำจำกัดความดูเหมือนง่าย แต่เมื่อเราก้าวไปข้างหน้าเพื่อให้ได้มาซึ่งพารามิเตอร์ที่มีค่ามากกว่า ความสับสนก็เกิดขึ้นว่าพารามิเตอร์ใดเหมาะสมที่สุดในสถานที่หนึ่งๆ
ใช้ในสถานที่ที่ปัญหาการจำแนกประเภทไม่สมดุลอย่างมาก และชั้นเรียนหนึ่งมีอำนาจเหนือชั้นเรียนอื่นๆ ในสถานการณ์เช่นนี้ คุณอาจแปลกใจที่เห็นความแม่นยำของโมเดลอยู่ที่ 99% แต่ในความเป็นจริง โมเดลมีความเอนเอียงอย่างมากต่อคลาสที่โดดเด่น มีความเป็นไปได้น้อยมากที่คุณจะได้รับการคาดการณ์สำหรับชนกลุ่มน้อย ดังนั้น เพื่อทดสอบชุดข้อมูลที่ไม่สมดุล เราจะพิจารณาเมทริกซ์ความสับสน
โครงสร้างของเมทริกซ์ความสับสน
ขนาดของเมทริกซ์เป็นสัดส่วนโดยตรงกับจำนวนคลาสเอาต์พุต เป็นเมทริกซ์สี่เหลี่ยมจัตุรัสที่เราถือว่าส่วนหัวของคอลัมน์เป็นค่าจริง และส่วนหัวของแถวเป็นการคาดคะเนโมเดล ค่าที่เป็นจริงและเป็นจริงโดยแบบจำลองคือ True Positives (TP) การคาดคะเนค่าลบที่ถูกต้องคือ True Negatives (TN) ค่าที่เป็นค่าลบแต่คาดการณ์ว่าเป็นจริงคือ False Positives (FP) และค่าบวกที่คาดการณ์ว่าเป็นค่าลบคือ เชิงลบเท็จ (FN) . ดูภาพนี้:

อ่าน: ประเภทของอัลกอริทึมการจำแนกประเภทในการเรียนรู้ของเครื่อง
เราเรียนรู้อะไรจากสิ่งนี้ได้บ้าง
คำถามที่ถูกต้องเกิดขึ้นว่าสิ่งที่เราสามารถทำได้กับเมทริกซ์นี้ มีคำศัพท์ที่สำคัญบางประการตามสิ่งนี้:

- ความแม่นยำ: เป็นส่วนของค่าที่แบบจำลองระบุว่าถูกต้องและเกี่ยวข้องกับวิธีแก้ไขปัญหาคำชี้แจงปัญหา นอกจากนี้เรายังสามารถอ้างอิงค่านี้เป็นค่า ซึ่งเป็นส่วนหนึ่งของผลลัพธ์ที่เป็นบวกทั้งหมดที่กำหนดโดยแบบจำลองและเป็นค่าบวก ดังนั้นเราจึงสามารถให้สูตรเป็น TP/ (TP + FP)
- เรียกคืน: เป็นส่วนของค่าที่โมเดลระบุอย่างถูกต้องว่าเป็นค่าบวก เรียกอีกอย่างว่า True Positive Rate หรือ Sensitivity สูตรออกมาเป็น TP/ (TP+FN)
- คะแนน F-1: เป็นค่าเฉลี่ยฮาร์มอนิกของความแม่นยำและการเรียกคืน หมายความว่าถ้าเราจะเปรียบเทียบสองโมเดล เมตริกนี้จะระงับค่าสุดขั้วและพิจารณาทั้งผลบวกลวงและผลลบลวงพร้อมกัน สามารถยกมาเป็น 2*Precision*Recall/ (Precision+Recall)
- ความแม่นยำ: เป็นส่วนของค่าที่ระบุได้อย่างถูกต้องไม่ว่าจะเป็นค่าบวกหรือค่าลบ หมายความว่าผลบวกที่แท้จริงและค่าลบที่แท้จริงทั้งหมดรวมอยู่ในสิ่งนี้ สูตรสำหรับสิ่งนี้คือ (TP+TN)/ (TP+TN+FP+FN)
จากเงื่อนไขทั้งหมด ความแม่นยำและการเรียกคืนนั้นถูกใช้อย่างกว้างขวางที่สุด การแลกเปลี่ยนของพวกเขาเป็นตัวชี้วัดความสำเร็จของการทำนายที่มีประโยชน์ โมเดลที่ต้องการควรมีความแม่นยำสูงและการเรียกคืนสูง แต่นี่เป็นข้อมูลที่แยกออกได้อย่างสมบูรณ์เท่านั้น ในกรณีการใช้งานจริง ข้อมูลจะไม่มีการจัดระเบียบและไม่สมดุลอย่างมาก

จะสร้างโค้ดสำหรับ Confusion Matrix ใน Python ได้อย่างไร?
ไลบรารี sklearn มีฟังก์ชันการทำงานที่หลากหลายเพื่อทำงานแมชชีนเลิร์นนิงทั้งหมดด้วยความแม่นยำสูงสุด และเกือบทุกอย่างได้ถูกนำมาใช้ที่นี่ พิจารณาชุดข้อมูล Iris ที่มีชื่อเสียงพร้อมคำสั่งนำเข้าทั้งหมดที่ทำเสร็จแล้ว รหัสสำหรับเมทริกซ์ความสับสนจะเป็น:
ไอริส = datasets.load_iris()
X = iris.data
y = iris.target
class_names = iris.target_names
X_train, X_test, y_train, y_test = train_test_split (X, y, random_state = 0 )
ลักษณนาม = svm.SVC (เคอร์เนล = 'เชิงเส้น' , C = 0.01 ) พอดี(X_train, y_train)
plot_confusion_matrix(ตัวแยกประเภท, X_test, y_test,display_labels = class_names,cmap = plt . ซม . บลูส์)

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

พิมพ์(classification_report(y_true=y_test, y_pred=y_pred, target_names=class_names))

อ่านเพิ่มเติม: อัลกอริธึมการเรียนรู้เชิงลึก
อันไหนที่จะใช้และที่ไหน?
นี่เป็นคำถามที่พบบ่อยที่สุดที่เกิดขึ้นขณะสร้างแบบจำลองข้อมูล และวิธีแก้ไขจะอยู่ในโดเมนข้อความแจ้งปัญหา พิจารณาสองกรณีนี้:
- สมมติว่าคุณกำลังคาดการณ์ว่าบุคคลนั้นจะได้รับภาวะหัวใจหยุดเต้นหรือไม่ ในสถานการณ์สมมตินี้ คุณไม่สามารถจัดประเภทผิดได้ และการคาดคะเนทั้งหมดควรมีความถูกต้อง จากที่กล่าวมา ค่าใช้จ่ายของ False Negatives นั้นสูง ดังนั้นบุคคลนั้นจึงมีแนวโน้มที่จะถูกโจมตี แต่ถูกคาดการณ์ว่าปลอดภัย ควรหลีกเลี่ยงกรณีเหล่านี้ ในสถานการณ์เหล่านี้ เราต้องการโมเดลที่มีการเรียกคืนสูง
- สมมติว่าเสิร์ชเอ็นจิ้นให้ผลลัพธ์แบบสุ่มที่คาดการณ์ทั้งหมดว่าเป็นบวกโดยแบบจำลอง มีความเป็นไปได้น้อยมากที่ผู้ใช้จะพึ่งพามัน ดังนั้น ในสถานการณ์นี้ เราจำเป็นต้องมีโมเดลที่มีความแม่นยำสูงเพื่อที่ประสบการณ์ของผู้ใช้จะดีขึ้น และเว็บไซต์จะเติบโตไปในทิศทางที่ถูกต้อง
บทสรุป
เมทริกซ์ความสับสนเป็นวิธีที่ยอดเยี่ยมในการประเมินแบบจำลองการจัดหมวดหมู่ มันให้ข้อมูลเชิงลึกที่แท้จริงว่าโมเดลได้จำแนกคลาสอย่างถูกต้องเพียงใดโดยพิจารณาจากอินพุตที่ให้มาและวิธีที่คลาสนี้สามารถจำแนกประเภทผิดได้
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับแมชชีนเลิร์นนิง โปรดดูที่ IIIT-B & upGrad's PG Diploma in Machine Learning & AI ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 450 ชั่วโมง กรณีศึกษาและการมอบหมายมากกว่า 30 รายการ IIIT- สถานะศิษย์เก่า B, 5+ โครงการหลักที่ใช้งานได้จริง & ความช่วยเหลือด้านงานกับบริษัทชั้นนำ
