Tìm hiểu cách Đường cong ROC và AUC đánh giá hiệu suất của bộ phân loại trong AI/ML, tối ưu hóa TPR so với FPR cho các tác vụ như phát hiện gian lận và chẩn đoán y tế.
Đường cong Đặc tính Vận hành của Bộ thu (ROC) là một biểu diễn đồ họa được sử dụng để đánh giá hiệu suất của một mô hình phân loại nhị phân. Nó trực quan hóa sự đánh đổi giữa Tỷ lệ Dương tính Thật (TPR) và Tỷ lệ Dương tính Giả (FPR) trên các ngưỡng phân loại khác nhau. Trong học máy (ML) , đường cong này đóng vai trò cơ bản trong việc đánh giá mức độ phân biệt giữa hai lớp của một mô hình, chẳng hạn như "rác" so với "không phải rác" hoặc "bệnh" so với "khỏe mạnh". Bằng cách biểu diễn các tỷ lệ này, đường cong ROC cung cấp một cái nhìn toàn diện về khả năng chẩn đoán của mô hình, vượt ra ngoài các chỉ số đơn lẻ như độ chính xác , vốn có thể gây hiểu lầm khi đứng riêng lẻ.
Để diễn giải đường cong ROC một cách chính xác, điều cần thiết là phải hiểu hai số liệu được biểu diễn trên các trục của nó:
Đường cong được tạo ra bằng cách thay đổi ngưỡng tin cậy của bộ phân loại từ 0 đến 1. Mỗi điểm trên đường cong ROC biểu thị một cặp độ nhạy/độ đặc hiệu tương ứng với một ngưỡng quyết định cụ thể. Đường chéo từ góc dưới bên trái lên góc trên bên phải biểu thị một bộ phân loại ngẫu nhiên không có kỹ năng dự đoán (giống như tung đồng xu), trong khi đường cong cong dốc về phía góc trên bên trái biểu thị một mô hình hiệu suất cao.
Đường cong ROC được sử dụng rộng rãi trong nhiều ngành công nghiệp khác nhau để tối ưu hóa ngưỡng quyết định cho việc triển khai mô hình .
Để vẽ đường cong ROC, bạn cần xác suất dự đoán cho lớp dương chứ không chỉ nhãn lớp cuối cùng. Ví dụ sau đây minh họa cách trích xuất các xác suất này bằng cách sử dụng
YOLO11 mô hình phân loại từ
ultralytics bưu kiện.
from ultralytics import YOLO
# Load a pretrained YOLO11 classification model
model = YOLO("yolo11n-cls.pt")
# Run inference on an image to get prediction results
results = model("path/to/image.jpg")
# Access the probability distribution for all classes
# These scores are necessary inputs for calculating ROC and AUC
probs = results[0].probs.data
print(f"Class probabilities: {probs}")
Khi đã có được các xác suất này cho tập dữ liệu thử nghiệm, các thư viện như Scikit-learn có thể được sử dụng để tính toán các giá trị FPR và TPR cần thiết để vẽ đường cong.
Mặc dù đường cong ROC là một công cụ mạnh mẽ, nhưng cần phân biệt nó với các khái niệm đánh giá liên quan:
Đối với các tác vụ liên quan đến phát hiện đối tượng , các chỉ số như Độ chính xác Trung bình ( mAP ) thường được sử dụng, mặc dù đường cong ROC vẫn có liên quan đến thành phần phân loại cơ bản của các mô hình này. Việc hiểu rõ những điểm khác biệt này đảm bảo các nhà phát triển chọn đúng chỉ số cho các thách thức cụ thể về thị giác máy tính (CV) của họ.