Tính toán F1-Score để đánh giá mô hình phân loại như thế nào? Tác giả: AI VIET NAM (AI VIET NAM)
Keywords: f1-score, precision recall, đánh giá mô hình, machine learning cơ bản, imbalanced dataset, confusion matrix, cách tính f1, phân loại dữ liệu, ai vietnam
Nếu bạn mới bước vào Machine Learning, rất dễ gặp cảm giác:
Accuracy thì hiểu được, nhưng sang Precision – Recall – F1 là bắt đầu rối.
Không biết khi nào nên dùng Accuracy, khi nào nên dùng F1.
Gặp bài toán mất cân bằng dữ liệu (imbalanced) là tính hoài không ra kết quả hợp lý.
Đây là tình trạng phổ biến vì F1-Score thuộc nhóm kiến thức “đánh giá mô hình” – nền tảng quan trọng trong lộ trình AI/ML cơ bản → nâng cao.
Bài viết này giúp bạn hiểu bản chất và tự tính F1-Score mà không cần nhớ công thức máy móc.
F1-Score là gì?
Bản chất của F1-Score
F1-Score là thước đo đánh giá mô hình phân loại dựa trên hai yếu tố quan trọng:
Precision – Khi mô hình dự đoán “có”, thì bao nhiêu phần trăm là đúng?
Recall – Trong tất cả trường hợp thực sự “có”, mô hình bắt được bao nhiêu?
F1-Score là điểm hòa giữa Precision và Recall, giúp đánh giá mô hình một cách cân bằng, đặc biệt hữu ích trong dữ liệu mất cân bằng như:
Phát hiện gian lận (fraud detection)
Phân loại bệnh hiếm
Đánh giá cảm xúc trong NLP với dữ liệu lệch
Trong những bài toán này, Accuracy có thể đánh lừa bạn.
Ví dụ: 99% mẫu “bình thường” – mô hình đoán tất cả bình thường ⇒ Accuracy 99% nhưng mô hình vô dụng.
F1 giúp phát hiện các trường hợp như vậy.
Cách tính F1-Score (dễ hiểu – theo bản chất)
Nhìn vào confusion matrix
Confusion matrix gồm:
TP – Dự đoán đúng trường hợp “có”
FP – Dự đoán nhầm “có”
FN – Bỏ sót trường hợp “có”
TN – Dự đoán đúng trường hợp “không”
Để tính F1, bạn chỉ cần TP, FP, FN .
Hiểu Precision – Recall theo trực giác
Precision chú trọng độ sạch của dự đoán dương tính.
Recall chú trọng độ bao phủ các trường hợp dương tính thật.
Hiểu đơn giản:
➡️ Precision cao → mô hình ít báo nhầm
➡️ Recall cao → mô hình ít bỏ sót
F1-Score = Điểm cân bằng giữa Precision và Recall
Khi Precision – Recall chênh lệch nhiều, F1 sẽ phản ánh mức “cân bằng hợp lý”.
Ví dụ trong Computer Vision – phát hiện người trong camera:
Precision cao – Recall thấp → ít báo nhầm nhưng bỏ sót nhiều
Recall cao – Precision thấp → bắt được nhiều người thật nhưng báo nhầm liên tục
F1 cho bạn bức tranh cân bằng hơn.
Ví dụ thực tế trong AI/ML (không bịa số liệu)
Ví dụ: Phân loại email spam
Giả sử kết quả mô hình:
TP = 80 email spam đúng
FP = 20 email thường bị nhầm
FN = 40 email spam bị bỏ sót
Từ đây:
Precision = 80/(80+20) = 0.80
Recall = 80/(80+40) = 0.67
F1-Score ≈ 0.72
Ý nghĩa:
Mô hình khá cân bằng, nhưng bỏ sót spam nhiều → cần cải thiện Recall.
Trong thực tế, đây là ví dụ kinh điển trong ML cơ bản.
Khi nào nên dùng F1-Score thay vì Accuracy?
Dùng F1 khi:
Không cần ưu tiên F1 khi:
Dữ liệu cân bằng
Chi phí của FP/FN tương đương
Ví dụ: phân loại ảnh chó/mèo với dataset cân bằng → Accuracy là chỉ số đủ tốt
Người mới thường sai gì khi tính F1-Score?
Chỉ dựa vào Accuracy và bỏ qua imbalance
Lỗi kinh điển → mô hình tưởng tốt nhưng thực tế không dùng được.
Hiểu nhầm Precision và Recall
Precision cao ≠ mô hình tốt → có thể bỏ sót hàng loạt mẫu
Recall cao ≠ mô hình tốt → có thể báo nhầm liên tục
Không biết chọn macro / micro / weighted F1
Trong multi-class:
Macro F1 – trung bình đều giữa các lớp
Micro F1 – tính dựa trên tổng TP/FP/FN → hợp dữ liệu lệch
Weighted F1 – trung bình theo tỉ lệ mẫu từng lớp → tốt cho imbalance
Phần này xuất hiện ở các module ML nâng cao hoặc XAI/đánh giá mô hình.
Kết luận: F1-Score là thước đo cân bằng – đơn giản nhưng cực quan trọng
Bạn không cần nhớ công thức. Chỉ cần hiểu:
Accuracy đôi khi “ảo”
Precision và Recall nhìn hai mặt khác nhau
F1 là điểm hòa hợp lý giữa cả hai
Nếu đang làm phân loại, đặc biệt với dữ liệu lệch, F1 gần như là chỉ số mặc định phải xem .
Lời khuyên học thuật
Tự tạo một mini confusion matrix và thử tính F1
So sánh F1 của nhiều mô hình để thấy sự khác biệt
Với multi-class, hãy thử macro và weighted F1
Khi đã vững F1, các phần nâng cao trong ML – CV – NLP sẽ dễ dàng hơn
Tham khảo thêm