Trong lĩnh vực Machine Learning, việc lựa chọn chỉ số đánh giá phù hợp là một bước quan trọng để hiểu rõ hiệu quả của mô hình. Accuracy thường được sử dụng vì đơn giản và dễ hiểu, nhưng nó có thể gây hiểu nhầm khi dữ liệu mất cân bằng. Trong khi đó, F1-score lại được ưa chuộng trong các bài toán cần cân bằng giữa Precision và Recall, chẳng hạn như phát hiện gian lận hoặc nhận diện bệnh hiếm.
Nếu bạn từng tìm hiểu về Tách đối tượng người ra khỏi ảnh nền hoặc Ứng dụng AI nhận diện biển báo giao thông, thì hiểu rõ cách đánh giá mô hình là bước tiếp theo để tối ưu và triển khai các hệ thống AI hiệu quả hơn. Bài viết này sẽ giúp bạn phân biệt rõ F1-score và Accuracy, đồng thời chỉ ra khi nào nên sử dụng từng metric.
Tổng quan về Accuracy
Accuracy được định nghĩa là tỷ lệ dự đoán đúng trên tổng số dự đoán. Nó đơn giản và phù hợp với các bài toán mà các lớp cân bằng nhau, như phân loại ảnh mèo và chó khi số lượng mỗi lớp tương đương.
Công thức tính:

Trong đó:
-
TP: True Positive (Dự đoán đúng lớp dương)
-
TN: True Negative (Dự đoán đúng lớp âm)
-
FP: False Positive (Dự đoán sai lớp dương)
-
FN: False Negative (Dự đoán sai lớp âm)
Tuy nhiên, Accuracy có thể “đánh lừa” khi dữ liệu mất cân bằng. Ví dụ, trong một tập dữ liệu y tế mà 95% mẫu là người khỏe mạnh, một mô hình dự đoán tất cả là “khỏe mạnh” vẫn đạt Accuracy 95% dù không hề phát hiện bệnh.
Tổng quan về F1-score
F1-score là trung bình điều hòa giữa Precision và Recall, giúp cân bằng hai yếu tố quan trọng này:
-
Precision: Tỷ lệ dự đoán dương đúng trên tổng số dự đoán dương.
-
Recall: Tỷ lệ dự đoán dương đúng trên tổng số mẫu thực tế dương.
Công thức:
![]()
F1-score đặc biệt hữu ích trong các bài toán mất cân bằng như phát hiện gian lận, nhận diện bệnh hiếm, hoặc lọc email spam, nơi False Positive và False Negative đều quan trọng.
Bảng so sánh trực quan
| Tiêu chí | Accuracy | F1-score |
|---|---|---|
| Định nghĩa | Tỷ lệ dự đoán đúng trên tổng số mẫu | Trung bình điều hòa Precision và Recall |
| Khi nào phù hợp | Dữ liệu cân bằng giữa các lớp | Dữ liệu mất cân bằng, cần cân nhắc FP & FN |
| Nhược điểm | Nhạy cảm với mất cân bằng dữ liệu | Ít trực quan hơn, cần tính toán thêm |
| Ưu điểm | Dễ hiểu, tính toán nhanh | Phản ánh tốt hơn hiệu quả trên dữ liệu lệch |
| Ví dụ ứng dụng | Phân loại ảnh khi các lớp đồng đều | Phát hiện bệnh, lọc email spam, gian lận |
Minh họa bằng Python
Giả sử một bài toán phân loại bệnh với dữ liệu mất cân bằng:
from sklearn.metrics import accuracy_score, f1_score
y_true = [0]*95 + [1]*5 # 95 khỏe mạnh, 5 bệnh
y_pred = [0]*100 # Mô hình đoán tất cả khỏe mạnh
print("Accuracy:", accuracy_score(y_true, y_pred))
print("F1-score:", f1_score(y_true, y_pred))
Kết quả:

