Tìm hiểu cách sử dụng đường cong đặc tính hoạt động của bộ thu (ROC) để đánh giá các bộ phân loại nhị phân. Khám phá sự đánh đổi giữa tỷ lệ dương tính thật (TPR) và tỷ lệ dương tính giả (FPR). Ultralytics YOLO26.
Đường cong đặc tính hoạt động của bộ thu (ROC) là một công cụ đồ họa cơ bản được sử dụng để đánh giá hiệu suất của các mô hình phân loại nhị phân. Trong lĩnh vực học máy (ML) , nó trực quan hóa sự đánh đổi giữa độ nhạy và độ đặc hiệu của mô hình trên tất cả các ngưỡng quyết định có thể. Không giống như các chỉ số đơn giá trị như độ chính xác , có thể gây hiểu lầm nếu tập dữ liệu không cân bằng, đường cong ROC cung cấp một cái nhìn toàn diện về cách thức hoạt động của bộ phân loại khi các tiêu chí để xác định các trường hợp tích cực trở nên nghiêm ngặt hơn hoặc ít nghiêm ngặt hơn. Hình ảnh trực quan này rất cần thiết cho các kỹ sư sử dụng các kỹ thuật học có giám sát để xác định điểm hoạt động tối ưu cho trường hợp sử dụng cụ thể của họ.
Để hiểu đường cong ROC, cần phải xem xét hai tham số được vẽ trên đồ thị so với nhau: Tỷ lệ dương tính thực (TPR) và Tỷ lệ dương tính giả (FPR).
Đường cong minh họa mối quan hệ động: khi bạn hạ thấp ngưỡng tin cậy để thu thập nhiều trường hợp tích cực hơn (tăng TPR), bạn chắc chắn sẽ tăng nguy cơ gắn cờ sai các trường hợp tiêu cực (tăng FPR). Một bộ phân loại hoàn hảo sẽ đạt đến góc trên bên trái của đồ thị, cho thấy độ nhạy 100% và tỷ lệ báo động sai là 0%. Một mô hình đưa ra dự đoán ngẫu nhiên sẽ xuất hiện dưới dạng một đường chéo từ dưới bên trái lên trên bên phải. Hiệu suất tổng thể thường được tóm tắt bằng Diện tích dưới đường cong (AUC) , trong đó giá trị 1,0 thể hiện sự hoàn hảo.
Quyết định đặt ngưỡng ở đâu trên đường cong ROC hoàn toàn phụ thuộc vào chi phí của các lỗi trong một ứng dụng cụ thể của ngành.
Để vẽ đường cong ROC, bạn cần xác suất dự đoán thô chứ không chỉ nhãn lớp cuối cùng. Ví dụ sau sử dụng mô hình YOLO26 hiện đại để tạo ra điểm số phân loại.
from ultralytics import YOLO
# Load a pretrained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Run inference to get probability distribution
results = model("bus.jpg")
# Access the probability score for the predicted class
# These continuous scores are required to calculate TPR/FPR at different thresholds
print(f"Top Class Index: {results[0].probs.top1}")
print(f"Confidence Score: {results[0].probs.top1conf:.4f}")
Sau khi thu thập các xác suất này cho một tập dữ liệu kiểm chứng, các nhà phát triển có thể sử dụng các thư viện như Scikit-learn để tính toán các điểm trên đường cong. Để quản lý tập dữ liệu và theo dõi các chỉ số này theo thời gian, Nền tảng Ultralytics cung cấp các công cụ tích hợp để đánh giá và triển khai mô hình.
Điều quan trọng là phải phân biệt đường cong ROC với các công cụ đánh giá khác: