0964 456 787 [email protected]

Các bài toán về ML thì việc chọn metric để đánh giá tính hiệu quả của model là rất quan trọng. Với mỗi bài toán khác nhau, chúng ta cần sử dụng các metric khác nhau. Ở đây tôi sẽ giới thiệu các khái niệm cơ bản liên quan đến Accuracy, Precision, Recall và F1.

Trước tiên, chúng ta hãy nhìn vào confusion matrix sau và xác định đâu là độ chính xác của mô hình:

Rất đơn giản bạn sẽ nói rằng độ chính xác của model này rất rất cao, đạt tới 99.9%. Vâng đây là 1 sự nhầm lẫn khá lớn đối với các bạn mới bước chân vào lĩnh vực ML. Trước kia mình cũng đã từng như vậy ^^.

Nhưng nếu như kết quả dự đoán ở trên áp dụng cho 1 bài toán dự đoán bệnh ung thư cho 1000 người vào test thì phát hiện ra 999 người không bị ung thư và 1 người bị ung thư. Nhưng thực tế thì có tới 2 người bị ung thư. Vấn đề bây giờ trở nên rất nghiêm trọng là chúng ta đã bỏ qua 1 bệnh nhân bị ung thư.

Precision và Recall

Đối với bài toán trên tôi sẽ giới thiệu 2 metric mới là Precision và Recall (Ở đây xin cho phép mình không dịch sang tiếng Việt vì không biết phải dịch sao cho đúng). Công thức tính của 2 metric này như sau:

Precision

\(\text{Precision} = \frac{\text{True Positive}}{\text{True Positive + False Positive}}\)

Đối với bài toán ví dụ trên ta sẽ thấy

\(\text{Preecision}=\frac{1}{0+1}=100\text{%}\)

Ngay lập tức chúng ta có thể thấy rằng Precision thể hiện độ chính xác của việc dự đoán các mẫu positive.

Precision là một metric để xác định khi mà việc dự đoán sai các mẫu Positive là rất nguy hiểm. Ví dụ đối với bài toán xác định spam email. Với bài toán này mẫu positive sẽ là spam mail, vậy false positive sẽ là việc dự đoán 1 email không phải spam bị đưa vào hòm mail spam. Việc này sẽ ảnh hưởng rất nhiều tới người sử dụng.

Recall

\(\text{Recall} = \frac{\text{True Positive}}{\text{True Positive}+\text{False Negative}}\)

Đối với metric này người ta sẽ thấy nó thể hiện rằng bao nhiêu mẫu positive thực tế được xác định đúng. Metric này dùng để đánh giá 1 model khi mà việc dự đoán sai 1 mẫu positive thực tế là rất nguy hiểm. Như việc dự đoán các bệnh nhân bị bệnh.

Đối với bài toán ví dụ trên ta sẽ thấy

\(\text{Recall}=\frac{1}{1+1}=50 \text{%} \)

F1 Score

Ở đây tôi sẽ giới thiệu bạn thêm 1 metric nữa đó là F1. Công thức của nó có liên quan tới Precision và Recall như sau:

\(\text{F1}= 2 \frac{\text{Precision * Recall}}{\text{Precision}+\text{Recall}}\)

F1 score sẽ được sử dụng khi bạn cần 1 metric để cân bằng được giữa Precision và Recall.

Vậy sự khác nhau giữa F1 Score và Accuracy là gì? Như ở ví dụ trên chúng ta đã xét, nếu 1 bài toán bị ảnh hưởng bởi quá nhiều mẫu negative thì Accuracy sẽ không còn chính xác nữa.

Tag: Accuracy; Precision; Recall; F1; metric; machine learning; Neural Net

Các bạn có thể đọc thêm về: Các hàm loss thông dụng trong Machine Learning