Bạn đã học các mô hình phân loại ở Module 1. Nhưng làm sao biết 1 mô hình phân loại là “tốt”? Câu trả lời tưởng như hiển nhiên — “đúng bao nhiêu %” — lại chính là cái bẫy lớn nhất khi đánh giá mô hình thực tế.
Ví dụ thật: 99.9% chính xác nhưng vô dụng
Hình dung 1 mô hình phát hiện gian lận, với tỷ lệ gian lận thật trong dữ liệu là 1/1000 (999 người bình thường, 1 người gian lận). Nếu mô hình đơn giản đoán “không ai gian lận” cho MỌI trường hợp — nó vẫn đúng 999/1000 lần, tức 99.9% chính xác. Nhưng mô hình này hoàn toàn vô dụng: nó không bắt được 1 vụ gian lận nào.
Đây gọi là vấn đề dữ liệu mất cân bằng (unbalanced classes) — khi 1 nhóm hiếm hơn nhóm khác rất nhiều, độ chính xác đơn thuần gần như luôn cao, nhưng không nói lên được gì cả.
Ví dụ thật: khi 80% lại TỆ HƠN 37%
Ở MegaTelCo (bài toán churn đã học), 1 đồng nghiệp báo cáo mô hình dự đoán churn đạt độ chính xác 80% — nghe rất tốt. Đồng nghiệp khác chỉ đạt 37% — nghe rất tệ. Nhưng khi soi kỹ: người đầu tiên test trên dữ liệu đã “cân bằng nhân tạo” (tỷ lệ churn/không-churn ngang nhau), người thứ hai test trên dữ liệu thật (tỷ lệ churn tự nhiên chỉ 10%). Khi đưa cả 2 mô hình test lại trên CÙNG 1 bộ dữ liệu, câu chuyện hoàn toàn khác — mô hình “37%” thực ra tốt hơn.
Bài học: không thể so sánh độ chính xác giữa 2 mô hình nếu không biết chúng được đo trên dữ liệu như thế nào. Công cụ chuẩn để phân tích sâu hơn “đúng/sai kiểu gì” là ma trận nhầm lẫn (confusion matrix):
Xem thêm
Video này (tiếng Anh) giải thích chi tiết cách đọc ma trận nhầm lẫn — nền tảng cần có trước khi học ROC/AUC ở bài sau.
- Bạn giải thích được vì sao 99.9% chính xác có thể là vô nghĩa với dữ liệu mất cân bằng.
- Bạn đọc được 4 ô trong ma trận nhầm lẫn và biết ô nào là loại sai nào.
- Bạn hiểu vì sao không thể so sánh trực tiếp độ chính xác giữa 2 mô hình test trên dữ liệu khác nhau.
Khi nghe 1 con số “độ chính xác X%”, câu hỏi đầu tiên nên hỏi là: “tỷ lệ nhóm hiếm nhất trong dữ liệu là bao nhiêu?” Nếu tỷ lệ đó rất nhỏ, con số accuracy gần như luôn cao và không nói lên được gì — cần nhìn vào ma trận nhầm lẫn để hiểu rõ mô hình đang sai ở đâu.
Câu hỏi thường gặp
Vậy nên dùng chỉ số nào thay accuracy?
Tùy bài toán — thường dùng precision/recall (tính từ ma trận nhầm lẫn) để biết rõ tỷ lệ bỏ lọt và tỷ lệ báo động giả riêng biệt, thay vì gộp chung vào 1 con số.
False Positive và False Negative, loại nào “tệ hơn”?
Phụ thuộc hoàn toàn vào bài toán — bỏ lọt 1 ca gian lận (False Negative) có thể tốn nhiều tiền hơn 1 lần báo động giả (False Positive), hoặc ngược lại. Đây chính là chủ đề bài tiếp theo.
Dữ liệu mất cân bằng có phổ biến trong thực tế không?
Rất phổ biến — gian lận, bệnh hiếm, khách hàng rời bỏ… hầu hết bài toán “tìm cái hiếm” đều gặp vấn đề này, tỷ lệ mất cân bằng 1:100 hoặc hơn không hiếm gặp.
