Phần trước đã trình bày một tập hợp các chỉ số mô hình, tất cả được tính ở mức một giá trị ngưỡng phân loại duy nhất. Nhưng nếu bạn muốn đánh giá chất lượng của mô hình trên tất cả các ngưỡng có thể, bạn cần các công cụ khác nhau.
Đường cong đặc tính hoạt động của máy thu (ROC)
Đường cong ROC là thông tin trình bày trực quan về hiệu suất của mô hình trên tất cả các ngưỡng. Phiên bản dài của tên, đặc điểm hoạt động của bộ thu, là một mã tạm thời từ việc phát hiện ra-đa trong Thế chiến thứ hai.
Đường cong ROC được vẽ bằng cách tính tỷ lệ dương thực (TPR) và tỷ lệ dương tính giả (FPR) ở mọi ngưỡng có thể xảy ra (trên thực tế, ở mức khoảng thời gian đã chọn), sau đó vẽ biểu đồ TPR trên FPR. Một người mẫu hoàn hảo, mà ở một số ngưỡng có TPR là 1.0 và FPR là 0.0, có thể được biểu thị bằng một điểm tại (0, 1) nếu tất cả các ngưỡng khác bị bỏ qua hoặc bằng cách xác định như sau:
![Hình 1. Đồ thị của TPR (trục y) so với FPR (trục x) biểu thị
hiệu suất của một mô hình hoàn hảo: một dòng từ (0,1) đến (1,1).](https://developers.google.cn/static/machine-learning/crash-course/images/auc_1-0.png?authuser=0000&hl=vi)
Diện tích dưới đường cong (AUC)
Vùng dưới đường cong ROC (AUC) biểu thị xác suất mà mô hình đó nếu cho một ví dụ âm và dương được chọn ngẫu nhiên, sẽ xếp hạng dương cao hơn giá trị âm.
Mô hình hoàn hảo ở trên, chứa một hình vuông với các cạnh có độ dài là 1, có giá trị diện tích dưới đường cong (AUC) bằng 1,0. Điều này có nghĩa là xác suất 100% mô hình sẽ xếp hạng chính xác một ví dụ khẳng định được chọn ngẫu nhiên cao hơn ví dụ phủ định được chọn ngẫu nhiên. Nói cách khác, khi xem xét sự lan truyền của các điểm dữ liệu dưới đây, AUC cho biết xác suất mà mô hình sẽ đặt hình vuông được chọn ngẫu nhiên ở bên phải hình tròn được chọn ngẫu nhiên, không phụ thuộc vào nơi đặt ngưỡng.
Nói một cách cụ thể hơn, thuật toán phân loại thư rác sử dụng AUC 1.0 luôn chỉ định một email rác ngẫu nhiên thì khả năng bị so với một email hợp lệ ngẫu nhiên. Cách phân loại thực tế của mỗi email tuỳ thuộc vào ngưỡng mà bạn chọn.
Đối với thuật toán phân loại nhị phân, một mô hình thực hiện chính xác như các dự đoán ngẫu nhiên hoặc tung đồng xu có ROC là một đường chéo từ (0,0) đến (1,1). AUC là 0, 5 thể hiện xác suất 50% xác suất xếp hạng chính xác kết quả dương tính ngẫu nhiên và ví dụ phủ định.
Trong ví dụ về thuật toán phân loại thư rác, thuật toán phân loại spam có AUC là 0,5 sẽ gán email rác ngẫu nhiên có xác suất là thư rác cao hơn so với email ngẫu nhiên email hợp lệ chỉ được một nửa thời gian.
![Hình 2. Đồ thị của TPR (trục y) so với FPR (trục x) biểu thị
hiệu suất của một người đoán ngẫu nhiên 50-50: một đường chéo từ (0,0)
đến (1,1).](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-5.png?authuser=0000&hl=vi)
(Không bắt buộc, nâng cao) Đường cong gợi lại độ chính xác
AUC và ROC hoạt động tốt trong việc so sánh các mô hình khi tập dữ liệu sao cho cân bằng giữa các lớp. Khi tập dữ liệu không cân bằng, tính năng gợi lại độ chính xác đường cong (PRC) và phần diện tích dưới các đường cong đó có thể đưa ra kết quả so sánh tốt hơn trực quan về hiệu suất của mô hình. Đường cong gợi lại độ chính xác được tạo bởi vẽ đồ thị độ chính xác trên trục y và gợi nhắc trên trục x trên tất cả ngưỡng.
![Ví dụ về đường cong thu hồi độ chính xác với đường cong lồi hướng xuống từ (0,1)
đến (1,0)](https://developers.google.cn/static/machine-learning/crash-course/images/prauc.png?authuser=0000&hl=vi)
AUC và ROC để chọn mô hình và ngưỡng
AUC là thước đo hữu ích để so sánh hiệu suất của hai mô hình khác nhau, miễn là tập dữ liệu đã gần cân bằng. (Xem Đường cong gợi lại độ chính xác, ở trên, đối với các tập dữ liệu không cân bằng.) Mô hình có diện tích lớn hơn trong đường cong thường là đường cong tốt hơn.
![Hình 3.a. Đồ thị ROC/AUC của mô hình với AUC=0, 65.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-65.png?authuser=0000&hl=vi)
![Hình 3.b. Đồ thị ROC/AUC của mô hình với AUC=0, 93.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-93.png?authuser=0000&hl=vi)
Các điểm trên đường cong ROC gần nhất với (0,1) biểu thị cho ngưỡng hoạt động tốt nhất cho mô hình cụ thể. Như đã thảo luận trong Ngưỡng, Ma trận nhầm lẫn và Lựa chọn chỉ số và lựa chọn đánh đổi ngưỡng mà bạn chọn sẽ tuỳ thuộc vào chỉ số nào quan trọng nhất đối với trường hợp sử dụng cụ thể. Hãy xem xét các điểm A, B và C trong các trường hợp sau mỗi biểu đồ đại diện cho một ngưỡng:
![Hình 4. Đường cong ROC có AUC=0,84 cho thấy 3 điểm trên
phần lồi của đường cong gần với (0,1) nhất được dán nhãn A, B, C theo thứ tự.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_abc.png?authuser=0000&hl=vi)
Nếu dương tính giả (cảnh báo giả) có mức hao tổn cao, thì bạn nên chọn một ngưỡng đưa ra FPR thấp hơn, như ngưỡng ở điểm A, ngay cả khi TPR bị giảm. Ngược lại, nếu dương tính giả có giá rẻ và âm tính giả (bỏ lỡ dương tính thật) rất tốn kém, ngưỡng cho điểm C, mà tối đa hoá TPR, có thể phù hợp hơn. Nếu chi phí gần tương đương, điểm B có thể mang lại mức cân bằng tốt nhất giữa TPR và FPR.
Dưới đây là đường cong ROC cho dữ liệu mà chúng ta đã xem trước đây:
Bài tập: Kiểm tra kiến thức
![Đường cong ROC vòng cung lên trên rồi sang phải từ (0,0) đến
(1,1). Đường cong có AUC là 0,77.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-77.png?authuser=0000&hl=vi)
![Đường cong ROC xấp xỉ một đường thẳng từ (0,0) đến
(1,1), với một vài đoạn ngoằn ngoèo. Đường cong có AUC là 0,508.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-508.png?authuser=0000&hl=vi)
![Đường cong ROC zig-zag lên và sang phải từ (0,0) đến (1,1).
Đường cong có AUC là 0,623.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-623.png?authuser=0000&hl=vi)
![Đường cong ROC vòng cung sang phải rồi hướng lên trên từ
(0,0) đến (1,1). Đường cong có AUC là 0,31.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-31.png?authuser=0000&hl=vi)
![Đường cong ROC vòng cung sang phải rồi hướng lên trên từ
(0,0) đến (1,1). Đường cong có AUC là 0,32.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-32.png?authuser=0000&hl=vi)
![Đường cong ROC gần bằng một đường thẳng của
từ (0,0) đến (1,1), với một vài ngoằn ngoèo. Đường cong này có
AUC là 0,508.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-508.png?authuser=0000&hl=vi)
![Đường cong ROC là một đường thẳng chéo từ
(0,0) đến (1,1). Đường cong có AUC là 0,5.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_0-5.png?authuser=0000&hl=vi)
![Đường cong ROC gồm hai đường vuông góc: một đường thẳng đứng
đường kẻ từ (0,0) đến (0,1) và một đường nằm ngang từ (0,1) đến (1,1).
Đường cong này có AUC là 1,0.](https://developers.google.cn/static/machine-learning/crash-course/images/auc_1-0.png?authuser=0000&hl=vi)
(Không bắt buộc, nâng cao) Câu hỏi thưởng
Hãy tưởng tượng một tình huống mà bạn nên cho phép một số nội dung rác tiếp cận thay vì gửi một email quan trọng đối với doanh nghiệp vào thư mục thư rác. Bạn đã đã huấn luyện một thuật toán phân loại thư rác cho trường hợp này khi lớp dương spam và lớp phủ định không phải là spam. Điểm nào sau đây trên đường cong ROC cho thuật toán phân loại có phù hợp không?
![Đường cong ROC có AUC=0,84 cho thấy ba điểm trên phần lồi của
đường cong gần bằng (0,1). Điểm A ở gần đúng
(0,25; 0,75). Điểm B ở khoảng (0,30; 0,90), và
điểm giúp tối đa hoá TPR trong khi giảm thiểu FPR. Điểm
C ở khoảng (0, 4, 0, 95).](https://developers.google.cn/static/machine-learning/crash-course/images/auc_abc.png?authuser=0000&hl=vi)