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

Confusion Matrix

Ma trận nhầm lẫn thống kê dự đoán của model đối chiếu với nhãn thực tế theo từng lớp. Tìm hiểu cách đọc ma trận, các metric thu được và dạng dùng cho phát hiện.

Ma trận nhầm lẫn là bảng đếm mức độ khớp giữa dự đoán của model phân loại với nhãn thực. Một trục liệt kê các lớp thực tế, trục còn lại liệt kê các lớp được dự đoán, và mỗi ô đếm số mẫu thuộc cặp lớp tương ứng. Dự đoán đúng nằm trên đường chéo, còn mọi lỗi nằm ngoài đường chéo, tại ô chỉ rõ chính xác lớp nào bị nhầm thành lớp nào. Vì vậy, ma trận nhầm lẫn là cách xem đầu tiên tiêu chuẩn về lỗi của model và là cơ sở để tính accuracy, precision, recall và F1-score.

Cách đọc ma trận nhầm lẫn nhị phân#

Với hai lớp, ma trận có bốn ô:

  • Dương tính thật (TP): mẫu dương tính được dự đoán là dương tính, chẳng hạn một linh kiện lỗi được đánh dấu là bị lỗi.
  • Dương tính giả (FP): mẫu âm tính được dự đoán là dương tính, còn gọi là lỗi loại I hoặc cảnh báo sai.
  • Âm tính giả (FN): mẫu dương tính được dự đoán là âm tính, còn gọi là lỗi loại II hoặc bỏ sót.
  • Âm tính thật (TN): mẫu âm tính được dự đoán là âm tính.

Hầu hết metric nhị phân là tỷ số được tính từ bốn số đếm này. Precision bằng TP / (TP + FP), recall bằng TP / (TP + FN), còn accuracy bằng (TP + TN) chia cho tổng của cả bốn số đếm. Ô ngoài đường chéo nào quan trọng hơn tùy thuộc vào ứng dụng: sàng lọc ung thư được tinh chỉnh để giữ số âm tính giả ở mức thấp, còn bộ lọc thư rác được tinh chỉnh để giảm số dương tính giả.

Ma trận nhầm lẫn đa lớp#

Với N lớp, ma trận có kích thước N × N. Theo cách sắp xếp được dùng trong scikit-learn's confusion_matrix, mỗi hàng là một lớp thực và mỗi cột là một lớp được dự đoán. Đọc theo hàng cho biết các mẫu của lớp đó được phân loại thành lớp nào, vì vậy ô đường chéo chia cho tổng hàng là recall của lớp. Đọc theo cột cho biết các dự đoán của model về lớp đó thực sự thuộc lớp nào, vì vậy ô đường chéo chia cho tổng cột là precision của lớp. Một số công cụ hiển thị ma trận chuyển vị, do đó nhãn trục quyết định cách đọc biểu đồ.

from sklearn.metrics import confusion_matrix

# Nhãn thực và nhãn được dự đoán cho 10 ảnh
y_true = ["cat", "cat", "cat", "dog", "dog", "dog", "dog", "fox", "fox", "fox"]
y_pred = ["cat", "cat", "dog", "dog", "dog", "dog", "cat", "fox", "dog", "fox"]

# Các hàng là lớp thực và các cột là lớp được dự đoán, theo thứ tự nhãn này
labels = ["cat", "dog", "fox"]
matrix = confusion_matrix(y_true, y_pred, labels=labels)
print(matrix)

Các hàng được in cho cat, dog và fox lần lượt là [2 1 0], [1 3 0] và [0 1 2]. Đường chéo chứa 7 trong số 10 ảnh, nên accuracy là 0.7. Cột dog gồm một cat và một fox, khiến precision của dog là 3 / 5 = 0.6; hàng dog có một ảnh bị nhầm thành cat, khiến recall của dog là 3 / 4 = 0.75. Ma trận chuẩn hóa chia mỗi ô cho tổng số mẫu của lớp thực tương ứng, nên đường chéo thể hiện recall theo lớp và các lớp có quy mô rất khác nhau trở nên có thể so sánh.

Ma trận nhầm lẫn trong object detection#

Detection bổ sung một lớp nền vì detector có thể dự đoán một bounding box tại vị trí không có đối tượng hoặc bỏ sót hoàn toàn một đối tượng. Trước tiên, dự đoán được ghép với nhãn bằng tỷ lệ giao trên hợp (IoU), sau đó được đếm: các cặp đã ghép nằm trong ô của lớp tương ứng, dự đoán không được ghép được tính là dương tính giả đối với lớp nền, còn nhãn không được ghép được tính là âm tính giả dự đoán thành lớp nền. Ô nền-nền luôn để trống vì không thể đếm các vùng trống trong ảnh, nên ma trận detection không có âm tính thật. Validation của YOLO26 tạo ma trận này với thêm một hàng và một cột cho lớp nền, ghép dự đoán với nhãn tại IoU trên 0.45, rồi lưu thành confusion_matrix.png với các lớp được dự đoán trên trục dọc và các lớp thực trên trục ngang.

from ultralytics import YOLO

# Load a pretrained YOLO26 nano detector
model = YOLO("yolo26n.pt")

# Validation builds the confusion matrix and saves it as confusion_matrix.png
metrics = model.val(data="coco8.yaml")
matrix = metrics.confusion_matrix.matrix  # rows: predicted class, columns: true class

# 80 COCO classes plus one background row and column
print(matrix.shape)

# Class 0 is "person": correct detections and people the model missed
print(f"Person TP: {matrix[0, 0]:.0f}, missed: {matrix[-1, 0]:.0f}")

Kích thước ma trận là (81, 81), và hàng cuối cùng đếm số người có nhãn nhưng không được dự đoán nào khớp.

  • Đường cong ROC: mỗi ngưỡng quyết định tương ứng với một điểm; mỗi điểm tóm tắt ma trận nhầm lẫn tại ngưỡng đó bằng tỷ lệ dương tính thật và tỷ lệ dương tính giả.
  • Độ chính xác trung bình (mAP): điểm số chính dùng trong detection, được tính từ cùng các quyết định TP và FP trên mọi mức độ tin cậy mà không cho biết những lớp nào bị nhầm lẫn.
  • Accuracy: ma trận được rút gọn thành một con số, bằng tổng các ô trên đường chéo chia cho tổng số mẫu. Với dataset có 95% mẫu âm tính, model luôn dự đoán "âm tính" sẽ đạt accuracy 95%, trong khi ma trận cho thấy không có dương tính thật nào.

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