Chuyển đến nội dung chính

Confusion Matrix trong Machine Learning là gì? Giải thích công cụ đánh giá mô hình

Xem cách confusion matrix phân loại dự đoán của mô hình thành Dương tính thật, Dương tính giả, Âm tính thật và Âm tính giả. Tiếp tục đọc để hiểu cấu trúc, các bước tính toán và cách dùng cho dữ liệu lệch lớp và phân tích lỗi.
Đã cập nhật 5 thg 10, 2026  · 12 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Năm nay ghi dấu nhiều đổi mới trong khoa học dữ liệu, với trí tuệ nhân tạo và machine learning chiếm sóng tiêu đề. Dù không thể phủ nhận những tiến bộ đạt được trong năm 2023, điều quan trọng là nhận ra rằng nhiều đột phá trong machine learning chỉ khả thi nhờ các quy trình đánh giá đúng đắn mà mô hình trải qua. Các chuyên gia dữ liệu có nhiệm vụ đảm bảo thực hiện các đánh giá và quy trình chính xác để đo lường hiệu suất của mô hình machine learning. Đây không chỉ là hữu ích - mà là bắt buộc.

Nếu bạn muốn nắm vững nghệ thuật khoa học dữ liệu, bài viết này sẽ hướng dẫn bạn qua các bước then chốt của đánh giá mô hình bằng confusion matrix, một công cụ tương đối đơn giản nhưng mạnh mẽ, được sử dụng rộng rãi trong đánh giá mô hình.

Hãy cùng bắt đầu và tìm hiểu sâu hơn về confusion matrix.

Confusion Matrix là gì?

Confusion matrix là một công cụ dùng để đánh giá hiệu suất của mô hình và được biểu diễn trực quan dưới dạng bảng. Nó đem lại lớp hiểu biết sâu hơn cho người làm dữ liệu về hiệu suất, lỗi và điểm yếu của mô hình. Nhờ đó, họ có thể tiếp tục phân tích và tinh chỉnh mô hình.

Cấu trúc của Confusion Matrix

Hãy tìm hiểu cấu trúc cơ bản của một confusion matrix, sử dụng ví dụ phân loại email là spam hay không spam.

  • True Positive (TP) - Mô hình dự đoán lớp dương tính. Ví dụ, nhận diện email spam là spam.
  • True Negative (TN) - Mô hình dự đoán đúng lớp âm tính. Ví dụ, nhận diện email bình thường là không spam.
  • False Positive (FP) - Mô hình dự đoán sai lớp dương tính. Ví dụ, nhận diện nhầm email bình thường là spam.
  • False Negative (FN) - Mô hình dự đoán sai lớp âm tính. Ví dụ, nhận diện nhầm email spam là email bình thường.

Để thực sự nắm bắt khái niệm confusion matrix, hãy xem hình minh họa dưới đây:

Cấu trúc của một confusion matrix

Cấu trúc cơ bản của Confusion Matrix

Thuật ngữ trong Confusion Matrix

Để hiểu sâu về Confusion Matrix, bạn cần nắm các chỉ số quan trọng dùng để đo lường hiệu suất mô hình.

Hãy định nghĩa các chỉ số quan trọng:

Độ chính xác (Accuracy)

Accuracy đo tổng số phân loại đúng chia cho tổng số trường hợp.

Công thức Accuracy cho Confusion Matrix

Recall/Độ nhạy (Sensitivity)

Recall/Sensitivity đo tổng số dương tính thật chia cho tổng số dương tính thực tế.

Công thức Recall cho Confusion Matrix

Precision

Precision đo tổng số dương tính thật chia cho tổng số dương tính được dự đoán.

Công thức Precision cho Confusion Matrix

Độ đặc hiệu (Specificity)

Specificity đo tổng số âm tính thật chia cho tổng số âm tính thực tế.

Công thức Specificity cho Confusion Matrix

Điểm F1

F1 là một chỉ số đơn lẻ là trung bình điều hòa của precision và recall.

Công thức F1 score cho Confusion Matrix

Vai trò của Confusion Matrix

Để hiểu rõ hơn về confusion matrix, bạn cần nắm mục tiêu và lý do nó được dùng rộng rãi.

Khi đo lường hiệu suất mô hình hay bất cứ thứ gì nói chung, mọi người thường tập trung vào độ chính xác. Tuy nhiên, phụ thuộc nặng vào chỉ số accuracy có thể dẫn đến quyết định sai. Để hiểu điều này, chúng ta sẽ xem qua những hạn chế của việc dùng accuracy như một chỉ số độc lập.

Hạn chế của accuracy khi dùng đơn lẻ

Như đã định nghĩa ở trên, accuracy đo tổng số phân loại đúng chia cho tổng số trường hợp. Tuy nhiên, dùng chỉ số này một cách độc lập có các hạn chế như:

  • Làm việc với dữ liệu lệch lớp: Không có dữ liệu nào hoàn hảo, và việc dùng chỉ số accuracy cần được đánh giá theo sức mạnh dự đoán của nó. Ví dụ, làm việc với bộ dữ liệu mà một lớp áp đảo lớp còn lại sẽ khiến mô hình đạt accuracy cao do luôn dự đoán lớp đa số.
  • Các loại lỗi: Hiểu và nắm hiệu suất của mô hình trong một ngữ cảnh cụ thể sẽ giúp bạn tinh chỉnh và cải thiện nó. Ví dụ, phân biệt các loại lỗi qua confusion matrix như FP và FN sẽ cho phép bạn khám phá các giới hạn của mô hình.

Trước những hạn chế này, confusion matrix cùng nhiều chỉ số đi kèm mang lại cái nhìn chi tiết hơn về cách cải thiện hiệu suất mô hình.

Lợi ích của confusion matrix

Như thấy trong cấu trúc cơ bản của confusion matrix, các dự đoán được chia thành bốn nhóm: Dương tính thật, Âm tính thật, Dương tính giả và Âm tính giả.

Phân rã chi tiết này mang lại những hiểu biết và giải pháp giá trị để cải thiện hiệu suất mô hình:

  • Giải quyết dữ liệu lệch lớp: Như đã đề cập, dùng accuracy đơn lẻ có hạn chế với dữ liệu lệch lớp. Dùng các chỉ số khác như precision và recall cho cái nhìn cân bằng và phản ánh chính xác hơn. Ví dụ, dương tính giả và âm tính giả có thể dẫn đến hậu quả lớn trong các lĩnh vực như Tài chính.
  • Phân biệt loại lỗi: Hiểu các loại lỗi khác nhau do mô hình machine learning tạo ra giúp bạn nắm được giới hạn và khu vực cần cải thiện.
  • Đánh đổi: Sự đánh đổi giữa các chỉ số trong Confusion Matrix là thiết yếu vì chúng ảnh hưởng lẫn nhau. Ví dụ, tăng precision thường dẫn đến giảm recall. Điều này sẽ định hướng bạn cải thiện hiệu suất mô hình dựa trên kiến thức từ các giá trị chỉ số bị tác động.

Tính toán Confusion Matrix

Giờ đây khi đã hiểu tốt về confusion matrix cơ bản, thuật ngữ và cách dùng của nó, hãy chuyển sang tính toán thủ công confusion matrix, sau đó là một ví dụ thực tế.

Tính thủ công một confusion matrix

Dưới đây là hướng dẫn từng bước để tính thủ công một Confusion Matrix.

Xác định các kết quả

Bước đầu tiên là xác định hai kết quả có thể của tác vụ: Dương tính hoặc Âm tính.

Thu thập các dự đoán

Sau khi xác định các kết quả có thể, bước tiếp theo là thu thập tất cả dự đoán của mô hình, bao gồm số lần mô hình dự đoán mỗi lớp và tần suất xảy ra.

Phân loại các kết quả

Sau khi đã tổng hợp tất cả dự đoán, bước tiếp theo là phân loại kết quả vào bốn nhóm:

  • True Positive (TP)
  • True Negative (TN)
  • False Positive (FP)
  • False Negative (FN)

Tạo ma trận

Khi đã phân loại kết quả, bước kế là trình bày chúng trong một bảng ma trận để tiếp tục phân tích bằng nhiều chỉ số.

Ví dụ thực tế về confusion matrix

Hãy đi qua một ví dụ thực tế để minh họa quy trình này.

Tiếp tục với ví dụ phân loại email là spam hay không spam, hãy tạo một bộ dữ liệu giả định trong đó spam là Dương tính và không spam là Âm tính. Chúng ta có dữ liệu sau:

  • Trong số 200 email, có 80 email thực sự là spam, mô hình nhận diện đúng 60 email là spam (TP).
  • Trong số 200 email, có 120 email không phải spam, mô hình nhận diện đúng 100 email là không spam (TN).
  • Trong số 200 email, mô hình nhận diện sai 20 email không spam là spam (FP).
  • Trong số 200 email, mô hình bỏ sót 20 email spam và nhận diện chúng là không spam (FN).

Tại thời điểm này, chúng ta đã xác định kết quả và thu thập dữ liệu; bước tiếp theo là phân loại kết quả vào bốn nhóm:

  • Dương tính thật: 60
  • Âm tính thật: 100
  • Dương tính giả: 20
  • Âm tính giả: 20

Bước tiếp theo là chuyển điều này thành một Confusion Matrix:

Thực tế / Dự đoán

Spam (Dương tính)

Không spam (Âm tính)

Spam (Dương tính)

60 (TP)

20 (FN)

Không spam (Âm tính)

20 (FP)

100 (TN)

Vậy Confusion Matrix cho chúng ta biết điều gì?

  • Dương tính thật và Âm tính thật cho thấy các dự đoán chính xác.
  • Dương tính giả cho thấy mô hình dự đoán sai lớp dương tính.
  • Âm tính giả cho thấy mô hình không phát hiện và dự đoán được lớp dương tính.

Dựa trên confusion matrix này, chúng ta có thể tính các chỉ số khác nhau: Accuracy, Recall/Sensitivity, Precision, Specificity và F1.

Kết quả các chỉ số của confusion matrix

Đầu ra các chỉ số của confusion matrix

Precision so với Recall

Bạn có thể thắc mắc tại sao điểm F1 lại bao gồm precision và recall trong công thức. Chỉ số F1 rất quan trọng khi xử lý dữ liệu lệch lớp hoặc khi bạn muốn cân bằng đánh đổi giữa precision và recall.

Precision đo độ chính xác của dự đoán dương tính. Nó trả lời câu hỏi: ‘khi mô hình dự đoán TRUE, nó đúng bao nhiêu lần?’. Precision đặc biệt quan trọng khi chi phí của dương tính giả cao.

Recall hay độ nhạy đo số dương tính thực tế được mô hình nhận diện đúng. Nó trả lời câu hỏi: ‘Khi lớp thực sự TRUE, bộ phân loại đúng bao nhiêu lần?’.

Recall quan trọng khi bỏ sót một trường hợp dương tính (FN) tệ hơn đáng kể so với gán nhầm trường hợp âm tính thành dương tính.

  • Trường hợp dùng Precision: Dương tính giả có thể gây hậu quả nghiêm trọng. Ví dụ, một mô hình phân loại trong lĩnh vực tài chính nhận diện sai một giao dịch là gian lận. Trong những tình huống như vậy, chỉ số precision rất quan trọng.
  • Trường hợp dùng Recall: Việc nhận diện tất cả các ca dương tính có thể là bắt buộc. Ví dụ, các mô hình phân loại dùng trong y tế chẩn đoán sai có thể gây hại. Trong các tình huống mà nhận diện đúng tất cả ca dương tính là thiết yếu, chỉ số recall rất quan trọng.

Confusion Matrix với Scikit-learn trong Python

Để cụ thể hóa, hãy tạo một confusion matrix bằng Scikit-learn trong Python, sử dụng bộ phân loại Random Forest.

Bước đầu tiên là import các thư viện cần thiết và xây dựng bộ dữ liệu tổng hợp.

# Import Libraries
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix
import matplotlib.pyplot as plt
import seaborn as sns

# Synthetic Dataset
X, y = make_classification(n_samples=1000, n_features=20,
                           n_classes=2, random_state=42)

# Split into Training and Test Sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

Bước tiếp theo là huấn luyện mô hình bằng một bộ phân loại random forest đơn giản

# Train the Model
model = RandomForestClassifier(random_state=42)
model.fit(X_train, y_train)

Như trong ví dụ thực tế, chúng ta sẽ cần phân loại các kết quả và chuyển chúng thành confusion matrix. Ta làm điều này bằng cách dự đoán trên dữ liệu kiểm tra trước rồi tạo Confusion Matrix:

# Predict on the Test Data
y_pred = model.predict(X_test)

# Generate the confusion matrix
cm = confusion_matrix(y_test, y_pred)

Giờ chúng ta muốn tạo biểu diễn trực quan của confusion matrix:

# Create a Confusion Matrix
plt.figure(figsize=(8, 8))
sns.heatmap(cm, annot=True, fmt='d', cmap='Greens')
plt.title('Confusion Matrix')
plt.ylabel('True label')
plt.xlabel('Predicted label')
plt.show()

Đây là đầu ra:

Ví dụ confusion matrix

Đầu ra Confusion Matrix của Random Forest

Tada 🎉 Bạn đã tạo thành công Confusion Matrix đầu tiên bằng Scikit-learn!

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu định nghĩa về Confusion Matrix, các thuật ngữ quan trọng xung quanh công cụ đánh giá này, cùng các hạn chế và tầm quan trọng của các chỉ số khác nhau. Khả năng tự tính toán Confusion Matrix là quan trọng cho nền tảng kiến thức khoa học dữ liệu của bạn, cũng như khả năng triển khai bằng các thư viện như Scikit-learn.

Nếu bạn muốn đi sâu hơn vào Confusion Matrix, hãy luyện tập confusion matrices trong R với Hiểu về Confusion Matrix trong R. Khám phá sâu hơn với khóa học Model Validation in Python, nơi bạn sẽ học các kiến thức cơ bản về xác thực mô hình, các kỹ thuật xác thực và bắt đầu tạo ra các mô hình đã được xác thực và có hiệu suất cao.


Nisha Arya Ahmed's photo
Author
Nisha Arya Ahmed
LinkedIn

Một người ham học hỏi, mong muốn vận dụng kiến thức kỹ thuật về khoa học dữ liệu cùng kỹ năng đối nhân xử thế vững vàng để nâng cao và mở rộng hiểu biết công nghệ cũng như kỹ năng viết của mình.

Tôi đã chuyển hướng sang lĩnh vực Khoa học Dữ liệu từ Dược lý học, sau khi hoàn thành một khóa bootcamp 9 tháng tại Lambda School. 

Tôi quan tâm đến việc áp dụng và trau dồi kỹ năng lập trình kỹ thuật và kỹ năng viết trong lĩnh vực Học máy và Trí tuệ nhân tạo. ​

Hiện tại, tôi là Nhà khoa học dữ liệu và Người viết kỹ thuật tự do.

Chủ đề
Machine Learning
Trí tuệ Nhân tạo

Tìm hiểu thêm về Confusion Matrix

Khóa học

Xác thực Mô hình trong Python

4 giờ
31.1K
Nắm vững kiến thức cơ bản về model validation, kỹ thuật validation và bắt đầu xây dựng các mô hình hiệu quả, đã được xác thực.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm