เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

คำนวณ Confusion Matrix

อย่างที่เห็นในวิดีโอ confusion matrix เป็นเครื่องมือที่มีประโยชน์มากสำหรับการปรับผลลัพธ์ของโมเดลและตรวจสอบผลลัพธ์ที่เป็นไปได้ทั้งหมดของการพยากรณ์ (true positive, true negative, false positive, false negative)

ก่อนสร้าง confusion matrix ต้องกำหนด "เกณฑ์" สำหรับตัดค่าความน่าจะเป็นที่พยากรณ์ไว้ เพื่อแปลงค่าความน่าจะเป็นให้เป็น factor ของคลาสที่พยากรณ์ ใช้ ifelse() ร่วมกับ factor() ดังนี้:

pos_or_neg <- ifelse(probability_prediction > threshold, positive_class, negative_class)
p_class <- factor(pos_or_neg, levels = levels(test_values))

confusionMatrix() ใน caret พัฒนาต่อยอดจาก table() ของ R พื้นฐาน โดยเพิ่มสถิติเสริมที่มีประโยชน์หลายรายการนอกเหนือจากตารางอัตราพื้นฐาน สามารถคำนวณ confusion matrix (พร้อมสถิติที่เกี่ยวข้อง) โดยใช้ผลลัพธ์ที่พยากรณ์และผลลัพธ์จริง เช่น:

confusionMatrix(p_class, test_values)

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Machine Learning ด้วย caret ใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ใช้ ifelse() เพื่อสร้าง character vector ชื่อ m_or_r โดยให้เป็นคลาสบวก "M" เมื่อ p มากกว่า 0.5 และเป็นคลาสลบ "R" ในกรณีอื่น
  • แปลง m_or_r ให้เป็น factor ชื่อ p_class โดยมีระดับ (levels) เหมือนกับของ test[["Class"]]
  • สร้าง confusion matrix ด้วย confusionMatrix() โดยส่ง p_class และคอลัมน์ "Class" จากชุดข้อมูล test เป็นอาร์กิวเมนต์

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# If p exceeds threshold of 0.5, M else R: m_or_r


# Convert to factor: p_class


# Create confusion matrix
แก้ไขและรันโค้ด