Một bộ lọc gắn nhãn bình thường cho cả mười yêu cầu vẫn có thể đạt accuracy 90% nếu chỉ một yêu cầu thật sự cần xem lại. Nếu mục tiêu là tìm được các yêu cầu cần xem, việc chọn mô hình dựa trên accuracy tổng sẽ bỏ qua hành vi quan trọng nhất trong ví dụ này.
Ví dụ và cách đọc
Tính recall riêng cho mỗi lớp. Với lớp bình thường, có chín trường hợp thật và cả chín đều được nhận ra. Với lớp cần xem, có một trường hợp thật và không trường hợp nào được nhận ra. Balanced accuracy mặc định lấy trung bình hai tỷ lệ đó, mỗi lớp đóng góp một phần như nhau vào kết quả. Ví dụ dùng Python chuẩn và dữ liệu giả lập.
from math import isclose
truth = ['normal'] * 9 + ['review']
prediction = ['normal'] * 10
recalls = {}
for label in sorted(set(truth)):
indices = [i for i, value in enumerate(truth) if value == label]
recalls[label] = sum(prediction[i] == label for i in indices) / len(indices)
accuracy = sum(a == b for a, b in zip(truth, prediction)) / len(truth)
balanced = sum(recalls.values()) / len(recalls)
assert isclose(accuracy, 0.9)
assert recalls == {'normal': 1.0, 'review': 0.0}
assert isclose(balanced, 0.5)
Kiểm tra kết quả
Fixture kiểm tra accuracy 0,9, recall hai lớp 1 và 0, balanced accuracy 0,5. Con số 0,5 ở đây cho thấy độ chênh rõ giữa hai lớp. Hãy ghi kèm số mẫu của từng lớp. Một lần phân loại đúng hay sai trên lớp chỉ có một mẫu sẽ làm recall của lớp đó thay đổi mạnh.
Áp dụng và giới hạn
Trong báo cáo thật, dùng cùng bộ đánh giá và cùng danh sách lớp khi so hai mô hình. Nếu một lớp không có mẫu trong đợt đo, ghi rõ phạm vi thay vì suy ra khả năng phát hiện lớp đó. Kiểm tra tiếp số báo động nhầm, vì recall cao có thể đi cùng nhiều dự đoán dương tính sai. Đối chiếu tài liệu scikit-learn 1.9.1 với adjusted=False. Fixture không chạy thư viện, không dùng trọng số và không đo trên mô hình thực.
Tình huống áp dụng
Giả sử báo cáo kế tiếp có thêm chín yêu cầu cần xem nhưng bộ lọc vẫn đưa tất cả về lớp bình thường. Accuracy tổng giảm vì tỷ lệ hai lớp đã đổi, còn recall từng lớp vẫn là 1 và 0. Trong tình huống đó, balanced accuracy giữ nguyên 0,5. Dùng phép đối chiếu này để phân biệt thay đổi tỷ lệ lớp và thay đổi khả năng nhận diện.
Khi chuẩn bị báo cáo, lập một dòng cho mỗi lớp với số mẫu thật, số đoán đúng và recall. Sau đó ghi rõ bảng dùng trung bình theo lớp hay theo số hàng. Nếu quy trình cần ưu tiên một loại lỗi nhất định, thống nhất ngưỡng và tiêu chí chấp nhận riêng với người vận hành. Điểm trung bình chỉ là phần tóm tắt, còn bảng theo lớp cho biết nên xem lỗi nào tiếp theo.


