Ultralytics YOLO27: Đăng ký vào danh sách chờ.
Cấp phép YOLO
Quay lại Bảng thuật ngữ Ultralytics

Area Under the Curve (AUC)

AUC chuyển đường cong ROC thành một điểm số từ 0 đến 1: xác suất classifier xếp hạng một mẫu dương tính ngẫu nhiên cao hơn một mẫu âm tính ngẫu nhiên. So sánh ROC AUC với PR AUC, kèm code.

Diện tích dưới đường cong (AUC) là metric tổng hợp khả năng phân biệt hai lớp của bộ phân loại nhị phân trên mọi ngưỡng quyết định có thể. Trong machine learning, AUC hầu như luôn chỉ diện tích dưới đường cong đặc tính hoạt động của bộ thu (ROC), còn được viết là ROC AUC hoặc AUROC. Giá trị này bằng xác suất model chấm điểm một ví dụ dương tính được chọn ngẫu nhiên cao hơn một ví dụ âm tính được chọn ngẫu nhiên. AUC bằng 1.0 nghĩa là mọi ví dụ dương tính đều được xếp trên mọi ví dụ âm tính; 0.5 nghĩa là thứ hạng không tốt hơn đoán ngẫu nhiên; giá trị dưới 0.5 nghĩa là thứ hạng bị đảo ngược. Vì chỉ phụ thuộc vào thứ tự điểm số, AUC đánh giá model trước khi chọn ngưỡng, khiến metric này trở thành tiêu chuẩn cho model chẩn đoán y tế, chấm điểm tín dụng và phát hiện gian lận.

Cách tính AUC#

Đường cong ROC biểu diễn tỷ lệ dương tính thật, tức recall, theo tỷ lệ dương tính giả — tỷ lệ mẫu âm tính bị đánh dấu nhầm — khi ngưỡng quyết định giảm dần từ điểm cao nhất xuống thấp nhất. Ngưỡng cao hơn mọi điểm số không đánh dấu mẫu nào và nằm tại (0, 0); ngưỡng thấp hơn mọi điểm số đánh dấu tất cả và nằm tại (1, 1). AUC là diện tích dưới đường nối các điểm ở giữa, thường được tính bằng quy tắc hình thang.

Có thể tính cùng giá trị bằng cách đếm các cặp. So sánh mọi ví dụ dương tính với mọi ví dụ âm tính, chấm mỗi cặp 1 nếu ví dụ dương tính được xếp cao hơn, 0.5 nếu hòa và 0 trong trường hợp còn lại, sẽ cho đúng giá trị ROC AUC; các nhà thống kê gọi đại lượng này là thống kê U Mann-Whitney đã chuẩn hóa, còn các nhà nghiên cứu y tế gọi là chỉ số concordance hoặc c-statistic. Các nhóm quản lý rủi ro tín dụng thường báo cáo hệ số Gini thay thế, có giá trị bằng 2 × AUC − 1.

Góc nhìn theo cặp giải thích các thuộc tính chính của AUC. Mọi phép biến đổi giữ nguyên thứ tự điểm số, chẳng hạn bình phương xác suất hoặc áp dụng hiệu chỉnh nhiệt độ cho logits của bộ phân loại nhị phân, đều không làm thay đổi AUC; vì vậy, model có thể đạt AUC xuất sắc nhưng xác suất được hiệu chỉnh rất kém. Việc hiệu chỉnh cần một metric riêng như điểm Brier.

ROC AUC và PR AUC trên dữ liệu mất cân bằng#

ROC AUC không phụ thuộc tỷ lệ giữa các lớp, vì tỷ lệ dương tính thật chỉ được tính trên các mẫu dương tính còn tỷ lệ dương tính giả chỉ được tính trên các mẫu âm tính. Đặc tính này trở thành nhược điểm khi mẫu dương tính hiếm. Với 1 mẫu dương tính trên 100 mẫu, tỷ lệ dương tính giả 5% tạo ra khoảng năm cảnh báo giả cho mỗi mẫu dương tính thực, nhưng chỉ ảnh hưởng rất ít đến đường cong ROC. Diện tích dưới đường cong precision-recall (PR AUC), thường được tóm tắt bằng average precision (AP), biểu diễn precision theo recall và thể hiện trực tiếp các cảnh báo giả đó, khiến metric này cung cấp nhiều thông tin hơn đường cong ROC trên dữ liệu mất cân bằng. Script scikit-learn dưới đây chấm điểm một model theo cả hai cách:

from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import average_precision_score, roc_auc_score
from sklearn.model_selection import train_test_split

# Imbalanced binary problem: 1 positive per 100 samples
X, y = make_classification(n_samples=20_000, weights=[0.99], flip_y=0, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, stratify=y, random_state=0)

# Score the test set with a simple classifier
model = LogisticRegression(max_iter=1000).fit(X_train, y_train)
scores = model.predict_proba(X_test)[:, 1]

# The same scores summarized by the areas under two different curves
print(f"Positives in test set: {y_test.sum()} of {len(y_test)}")
print(f"ROC AUC: {roc_auc_score(y_test, scores):.3f}")
print(f"PR AUC (average precision): {average_precision_score(y_test, scores):.3f}")

Với 100 mẫu dương tính trong số 10.000 mẫu kiểm tra, model đạt ROC AUC 0.911 nhưng average precision chỉ đạt 0.462. Hai chỉ số cũng có giá trị cơ sở khác nhau: thứ hạng ngẫu nhiên đạt ROC AUC 0.5 bất kể mức cân bằng lớp, còn average precision của thứ hạng đó bằng tỷ lệ mẫu dương tính, ở đây là 0.01.

AUC đa lớp và phát hiện đối tượng#

ROC AUC được định nghĩa cho hai lớp. Với nhiều lớp hơn, hàm roc_auc_score của scikit-learn tính trung bình AUC one-vs-rest, trong đó mỗi lớp được so sánh với tất cả lớp còn lại, hoặc AUC one-vs-one trên mọi cặp lớp, với phép tính trung bình macro hoặc có trọng số theo tỷ lệ xuất hiện.

Phát hiện đối tượng không thể dùng đường cong ROC, vì các mẫu âm tính là mọi vị trí box không chứa đối tượng — một tập hợp gần như vô hạn, không có tỷ lệ dương tính giả có ý nghĩa. Metric phát hiện thay vào đó dùng diện tích dưới đường cong precision-recall. Trong quá trình xác thực YOLO26, Ultralytics tính average precision của mỗi lớp bằng diện tích dưới đường bao precision-recall, lấy mẫu tại 101 điểm recall như trong quy trình đánh giá COCO, rồi lấy trung bình các diện tích đó thành mean average precision (mAP) tại các ngưỡng IoU từ 0.50 đến 0.95.

  • Độ chính xác: Đo số dự đoán đúng tại một ngưỡng và có thể trông rất cao trên dữ liệu mất cân bằng dù bỏ sót mọi mẫu dương tính. AUC đo thứ hạng trên mọi ngưỡng.
  • Điểm F1: Kết hợp precision và recall tại một ngưỡng duy nhất, nên chỉ chấm điểm một điểm vận hành; AUC tổng hợp tất cả các điểm đó.
  • Ma trận nhầm lẫn: Đếm số dương tính thật, dương tính giả, âm tính thật và âm tính giả tại một ngưỡng. Mỗi điểm ROC tóm tắt một ma trận nhầm lẫn thành một cặp tỷ lệ.
  • Average precision: Diện tích dưới đường cong precision-recall, thường dùng để tổng hợp hiệu năng khi mẫu dương tính hiếm và là thành phần chính của mAP.
  • AUC từng phần: Diện tích trong một phạm vi tỷ lệ dương tính giả giới hạn, chẳng hạn từ 0 đến 0.1; được dùng khi chỉ chấp nhận tỷ lệ cảnh báo giả thấp, như trong các chương trình sàng lọc quy mô lớn, nơi mỗi cảnh báo giả đều dẫn đến một lần khám tiếp theo.

Khám phá các giải pháp

Thị giác máy tính trong thể thao

Thị giác máy tính trong thể thao

Khám phá cách Ultralytics YOLO thúc đẩy thị giác máy tính trong thể thao với khả năng theo dõi cầu thủ và bóng, phân tích hiệu suất, cung cấp thông tin chuyên sâu cho huấn luyện và hỗ trợ phục hồi cho vận động viên.
Tìm hiểu thêm
Thị giác máy tính cho ảnh hàng không

Thị giác máy tính cho ảnh hàng không

Chuyển hình ảnh từ drone và ảnh hàng không thành thông tin chuyên sâu theo thời gian thực cho nông nghiệp, nuôi trồng thủy sản, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Ứng dụng computer vision trong ngành hàng không vũ trụ với Ultralytics YOLO cho kiểm tra máy bay, phát hiện dị vật trên đường băng (FOD), vận hành mặt đất tại sân bay và phát hiện lỗi vật liệu composite.
Tìm hiểu thêm
Computer vision trong lĩnh vực an ninh

Computer vision trong lĩnh vực an ninh

Bảo vệ mọi địa điểm bằng model Ultralytics YOLO. Vision AI hỗ trợ giám sát vành đai, phát hiện mối đe dọa, nhận dạng biển số và an toàn nơi làm việc.
Tìm hiểu thêm
Computer vision trong robotics

Computer vision trong robotics

Tăng cường năng lực cho máy móc thông minh bằng model Ultralytics YOLO. Vision AI trong lĩnh vực robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh giản hoạt động logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho hàng theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại hoạt động bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng chờ và phân tích khách hàng thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong chăm sóc sức khỏe

Thị giác máy tính trong chăm sóc sức khỏe

Xây dựng các giải pháp chăm sóc sức khỏe với model Ultralytics YOLO. Vision AI trong chăm sóc sức khỏe hỗ trợ xử lý hình ảnh y tế nhanh hơn, chẩn đoán thông minh hơn và theo dõi bệnh nhân.
Tìm hiểu thêm
Thị giác máy tính trong sản xuất

Thị giác máy tính trong sản xuất

Tối ưu hóa sản xuất bằng các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Thị giác máy tính trong ngành ô tô

Thị giác máy tính trong ngành ô tô

Ứng dụng thị giác máy tính trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn giao thông, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong nông nghiệp

Thị giác máy tính trong nông nghiệp

Ứng dụng AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Hỗ trợ giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để nâng cao năng suất một cách thông minh hơn.
Tìm hiểu thêm

Hãy cùng nhau kiến tạo tương lai của AI!

Bắt đầu hành trình hướng đến tương lai của machine learning