เมทริกซ์ความสับสนในการเรียนรู้ของเครื่อง: โซลูชันครบวงจรของคุณ



บทความนี้มุ่งเน้นไปที่ Confusion Matrix ซึ่งเป็นหนึ่งในส่วนที่สำคัญที่สุดของอัลกอริทึมการเรียนรู้ของเครื่องที่ใช้ในการประเมินความแม่นยำ

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

1. Confusion Matrix คืออะไร?





2. ความถูกต้องและส่วนประกอบของ Confusion Matrix

3. ความแม่นยำการเรียกคืนและการวัดค่า F



วิธีเริ่มต้นคลาสใน python

4. การสร้าง Confusion Matrix โดยใช้ Python และ Sklearn

Confusion Matrix คืออะไร?

เมทริกซ์ความสับสนคือการสรุปการเปรียบเทียบของผลลัพธ์ที่คาดการณ์และผลลัพธ์ที่แท้จริงในกรณีการใช้งานปัญหาการจำแนกประเภทใด ๆ สรุปการเปรียบเทียบมีความจำเป็นอย่างยิ่งในการกำหนดประสิทธิภาพของโมเดลหลังจากได้รับการฝึกอบรมด้วยข้อมูลการฝึกอบรมบางส่วน Accuracy-Confusion-Matrixสำหรับกรณีการใช้งานการจำแนกประเภทไบนารี Confusion Matrix คือเมทริกซ์ 2 × 2 ซึ่งดังที่แสดงด้านล่าง
ค่าคลาส 1 ที่คาดการณ์ไว้ เช่น 1 ค่าคลาส 2 ที่คาดการณ์ไว้ เช่น: 0
ค่าคลาส 1 จริง

เช่น 1

TP (True Positive) FN (ลบเท็จ)
ค่าคลาส 2 จริง



เช่น: 0

FP (บวกเท็จ) TN (ค่าลบจริง)

จากรูปด้านบน:
เรามี,

  • ค่าคลาส 1 จริง = 1 ซึ่งคล้ายกับค่าบวกในผลลัพธ์ไบนารี
  • ค่าคลาส 2 จริง = 0 ซึ่งคล้ายกับค่าลบในผลลัพธ์ไบนารี

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

มีส่วนประกอบต่างๆที่มีอยู่เมื่อเราสร้างเมทริกซ์ความสับสน ส่วนประกอบดังกล่าวด้านล่าง

บวก (P): ผลลัพธ์ที่ทำนายเป็นบวก (ตัวอย่าง: รูปภาพคือแมว)

เชิงลบ (N): ผลลัพธ์ที่คาดการณ์เป็นลบ (ตัวอย่าง: รูปภาพไม่ใช่แมว)

True Positive (TP): โดยทั่วไป TP จะระบุการคาดการณ์และค่าที่แท้จริงคือ 1 (True)

True Negative (TN): ที่นี่ TN ระบุการทำนายและค่าจริงคือ 0 (False)

ลบเท็จ (FN): ที่นี่ FN ระบุว่าค่าที่ทำนายคือ 0 (ค่าลบ) และค่าจริงคือ 1 ที่นี่ทั้งสองค่าไม่ตรงกัน ดังนั้นจึงเป็นลบเท็จ

บวกเท็จ (FP): ที่นี่ FP ระบุว่าค่าทำนายคือ 1 (ค่าบวก) และค่าจริงคือ 0 อีกครั้งทั้งสองค่าไม่ตรงกัน ดังนั้นจึงเป็นบวกเท็จ

ความถูกต้องและส่วนประกอบของ Confusion Matrix

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

จากสูตรข้างต้นผลรวมของ TP (True Positive) และ TN (True Negative) คือผลการทำนายที่ถูกต้อง ดังนั้นในการคำนวณความแม่นยำเป็นเปอร์เซ็นต์เราจึงหารด้วยส่วนประกอบอื่น ๆ ทั้งหมด อย่างไรก็ตามมีปัญหาบางประการเกี่ยวกับความแม่นยำและเราไม่สามารถพึ่งพาได้อย่างสมบูรณ์

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

  • TPR (True Positive Rate) หรือความไว:

อัตรา True Positive หรือที่เรียกว่า Sensitivity จะวัดเปอร์เซ็นต์ของ True Positive เทียบกับ Total Actual Positives ซึ่งระบุโดย (TP + FN)

ค่าคลาส 1 ที่คาดการณ์ไว้ เช่น 1 ค่าคลาส 2 ที่คาดการณ์ไว้ เช่น: 0 รวม
ค่าคลาส 1 จริง

เช่น 1

TP (True Positive) FN (ลบเท็จ) ผลบวกจริงทั้งหมด
ค่าคลาส 2 จริง

เช่น: 0

FP (บวกเท็จ)TN (ค่าลบจริง)ผลลบจริงทั้งหมด
TPR = True Positive / (True Positive + False Negative
  • TNR (True Negative Rate) หรือความจำเพาะ:

True Negative Rate หรือความจำเพาะวัดสัดส่วนของเชิงลบจริงเทียบกับค่าลบทั้งหมด

ค่าคลาส 1 ที่คาดการณ์ไว้ เช่น 1 ค่าคลาส 2 ที่คาดการณ์ไว้ เช่น: 0 รวม
ค่าคลาส 1 จริง

เช่น 1

TP (True Positive)FN (ลบเท็จ)ผลบวกจริงทั้งหมด
ค่าคลาส 2 จริง

เช่น: 0

FP (บวกเท็จ) TN (ค่าลบจริง) ผลลบจริงทั้งหมด

TNR = True Negative / (True Negative + False Positive)

  • อัตราบวกเท็จ (FPR):

False Positive Rate คือเปอร์เซ็นต์ของ Predicted False Positive (FP) ต่อจำนวนผลลัพธ์เชิงบวกที่คาดการณ์ไว้ทั้งหมด (TP + FP)

ค่าคลาส 1 ที่คาดการณ์ไว้ เช่น 1 ค่าคลาส 2 ที่คาดการณ์ไว้ เช่น: 0
ค่าคลาส 1 จริงเช่น 1 TP (True Positive) FN (ลบเท็จ)
ค่าคลาส 2 จริงเช่น 0 FP (บวกเท็จ) TN (ค่าลบจริง)
ผลรวมของผลบวกที่คาดการณ์ไว้ทั้งหมด ผลรวมของค่าลบที่คาดการณ์ไว้ทั้งหมด
FPR = False Positive / (True Positive + False Positive)
  • อัตราลบเท็จ (FNR):

False Negative Rate คือเปอร์เซ็นต์ของ Predicted False Negative (FP) ต่อจำนวนผลลัพธ์เชิงลบที่คาดการณ์ไว้ทั้งหมด (TN + FN)

ค่าคลาส 1 ที่คาดการณ์ไว้ เช่น 1 ค่าคลาส 2 ที่คาดการณ์ไว้ เช่น: 0
ค่าคลาส 1 จริงเช่น 1TP (True Positive) FN (ลบเท็จ)
ค่าคลาส 2 จริงเช่น 0FP (บวกเท็จ) TN (ค่าลบจริง)
ผลรวมของผลบวกที่คาดการณ์ไว้ทั้งหมด ผลรวมของค่าลบที่คาดการณ์ไว้ทั้งหมด
FNR = False Negative / (False Negative + True Negative)

ความแม่นยำการเรียกคืนและการวัดค่า F

  • จำ:

การเรียกคืนจะคล้ายกับ True Positive Rate และเป็นอัตราส่วนของจำนวนค่าบวกที่ทำนายได้อย่างถูกต้อง (TP) กับค่าบวกทั้งหมด

  • ความแม่นยำ:

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

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

  • F- การวัด

ดังนั้น F-Measure เป็นเทคนิคที่รวมทั้งเทคนิคความแม่นยำและการเรียกคืนเข้าด้วยกันและใช้ค่าเฉลี่ยฮาร์มอนิกแทนค่าเฉลี่ยเลขคณิตตามปกติเนื่องจากมีการลงโทษค่ามาก F-measure เรียกอีกอย่างว่า F1- คะแนนและกำหนดโดยสูตรด้านล่าง

ให้เราพิจารณาตัวอย่างและดูว่าเราจะคำนวณความแม่นยำความแม่นยำการเรียกคืนและคะแนน F1 ได้อย่างไร

N = 165 ทำนายว่าใช่ ที่คาดการณ์ไว้
ใช่จริง TP = 150 FN = 10
หมายเลขปัจจุบัน FP = 20 TN = 100
    • ความแม่นยำ = (TP + TN) / (TP + TN + FP + FN) = (150 + 100) / (150 + 100 + 20 + 10) = 0.89
    • เรียกคืน = TP / (TP + FN) = 150 / (150 + 10) = 0.93
    • ความแม่นยำ: TP / (TP + FP) = 150 / (150 + 20) = 0.88

  • F-measure = (2 * Recall * Precision) / (Recall + Presision) = (2 * 0.93 * 0.88) / (0.93 + 0.88) = 0.90

การสร้าง Confusion Matrix โดยใช้ Python และ Sklearn

ตอนนี้เราจะเห็นตัวอย่างของวิธีที่เราสามารถสร้างเมทริกซ์ความสับสนโดยใช้ python พร้อมกับไลบรารี sklearn

หนึ่ง. ในขั้นต้นเราจะสร้างรายการข้อมูลจริงและคำทำนายเพื่อตรวจสอบความถูกต้องดังที่แสดงด้านล่าง

# สคริปต์ Python สำหรับการสร้างเมทริกซ์ความสับสน actual_data = [1, 1, 0, 1, 0, 0, 1, 0, 0, 0,1,0,1] ทำนาย _data = [0, 1, 1, 1, 0, 0, 1, 0, 1, 0,1,0,1]

2. เราจำเป็นต้องนำเข้าเมทริกซ์ความสับสนจากไลบรารี sklearn ดังที่แสดงด้านล่าง:

จาก sklearn.metrics นำเข้าความสับสน _matrix

3. ต่อไปเราจะสร้างเมทริกซ์ความสับสนดังที่แสดงด้านล่าง:

final_results = ความสับสน _ เมทริกซ์ (actual_data, Predict_data)

สี่. ตอนนี้เราสามารถคำนวณความถูกต้องได้โดยการนำเข้าไลบรารีดังที่แสดงด้านล่าง:

จาก sklearn.metrics นำเข้าความแม่นยำ _ คะแนนความถูกต้อง = ความแม่นยำ _ คะแนน (actual_data, ทำนาย _data)

5. สุดท้ายเราคำนวณคะแนน F1 หรือ F- การวัดดังที่แสดงด้านล่าง:

จาก sklearn.metrics การนำเข้าการจัดหมวดหมู่_reportรายงาน = การจัดหมวดหมู่_report (actual_data, Predict_data)

ด้านล่างนี้คือรหัสที่สมบูรณ์:

actual_data = [1, 1, 0, 1, 0, 0, 1, 0, 0, 0,1,0,1] ทำนาย _data = [0, 1, 1, 1, 0, 0, 1, 0, 1, 0,1,0,1] จาก sklearn.metrics การนำเข้าความสับสน _matrix final_results = ความสับสน _ เมทริกซ์ (actual_data, ทำนาย _data) พิมพ์ (final_results) จาก sklearn.metrics นำเข้าความแม่นยำ_scoreความถูกต้อง = ความถูกต้อง_score (actual_data, ทำนาย _data) จาก sklearn.metrics นำเข้าการจัดหมวดหมู่_reportรายงาน = การจัดหมวดหมู่_report ( actual_data, Predict_data) พิมพ์ (ความถูกต้อง) พิมพ์ (รายงาน)

matrix

ดังนั้นเราจึงมาถึงจุดสิ้นสุดของบทความนี้ ฉันหวังว่าความสับสนทั้งหมดของคุณเกี่ยวกับ Confusion Matrix จะได้รับการแก้ไขแล้ว

Edureka’s ช่วยให้คุณมีความเชี่ยวชาญในอัลกอริธึมการเรียนรู้ของเครื่องต่างๆเช่นการถดถอยการจัดกลุ่มต้นไม้การตัดสินใจป่าสุ่มNaïve Bayes และ Q-Learning การเรียนรู้ของเครื่องโดยใช้ Python Training ทำให้คุณได้เห็นแนวคิดของสถิติอนุกรมเวลาและอัลกอริทึมการเรียนรู้ของเครื่องคลาสต่างๆเช่นอัลกอริธึมที่มีการควบคุมดูแลไม่ได้รับการควบคุม ตลอดหลักสูตรการรับรองวิทยาศาสตร์ข้อมูลคุณจะได้รับการไขกรณีศึกษาในชีวิตจริงเกี่ยวกับสื่อการดูแลสุขภาพโซเชียลมีเดียการบินทรัพยากรบุคคล