Đánh giá mô hình trong Machine Learning

Bài học 4 đã đề cập đến quy trình xử lý dữ liệu trong Machine Learning - cách chuẩn bị và phân chia dữ liệu. Giờ là lúc đặt ra câu hỏi quan trọng: Sau khi huấn luyện xong một mô hình, làm sao để biết nó hoạt động hiệu quả?

Câu trả lời phức tạp hơn bạn nghĩ. Một mô hình có thể đạt kết quả rất tốt ở chỉ số này nhưng lại rất tệ ở chỉ số khác. Và chỉ số trực quan nhất - độ chính xác (accuracy) - lại thường gây hiểu lầm nhiều nhất.

Accuracy: Chỉ số hiển nhiên (nhưng dễ gây hiểu lầm)

Accuracy = số dự đoán đúng / tổng số dự đoán

Nghe có vẻ hợp lý: Nếu mô hình dự đoán đúng 95 trong số 100 trường hợp, thì độ chính xác là 95%. Tuy nhiên, chỉ số này không còn đáng tin cậy khi dữ liệu bị mất cân bằng.

Vấn đề mất cân bằng lớp dữ liệu:

  • 1.000 email: 990 email hợp lệ, 10 email rác (spam)
  • Mô hình dự đoán mọi email đều là hợp lệ
  • Độ chính xác: 990/1000 = 99%
  • Số email rác phát hiện được: 0 trên 10

Mô hình đạt độ chính xác 99% nhưng lại hoàn toàn vô dụng cho mục đích sử dụng thực tế. Đây là lý do tại sao các chuyên gia Machine Learning (ML) hiếm khi chỉ dựa vào độ chính xác.

Precision và Recall: Những chỉ số quan trọng

Precision 

Khi mô hình đưa ra kết quả "dương tính" (positive), tỷ lệ dự đoán đúng là bao nhiêu?

Precision = Kết quả dương tính thật / (Kết quả dương tính thật + Kết quả dương tính giả)

Mở ChatGPT (chat.openai.com), Claude (claude.ai) hoặc Gemini (gemini.google.com) và bắt đầu một cuộc trò chuyện mới.

Sao chép câu lệnh (prompt) này:

Trong số tất cả các email tôi đã đánh dấu là thư rác, tỷ lệ thực sự là thư rác chiếm bao nhiêu phần trăm?

Chỉ trong vài giây, AI sẽ trả về phản hồi được trình bày có cấu trúc dựa trên câu lệnh trên. Hãy đọc kỹ và coi đó là bản nháp, không phải câu trả lời cuối cùng.

Recall

Trong số tất cả các trường hợp thực sự là thư rác, mô hình đã phát hiện được bao nhiêu?

Recall = Kết quả dương tính thật / (Kết quả dương tính thật + Kết quả âm tính giả)

Mở ChatGPT (chat.openai.com), Claude (claude.ai) hoặc Gemini (gemini.google.com) và bắt đầu một cuộc trò chuyện mới. Sao chép câu lệnh (prompt) này:

Trong số tất cả các email thực sự là thư rác, tôi đã đánh dấu được bao nhiêu phần trăm?

Sự đánh đổi: Việc tăng chỉ số này thường sẽ làm giảm chỉ số kia

Kịch bản Ưu tiên Lý do
Sàng lọc ung thư Recall Bỏ sót ung thư (kết quả âm tính giả) gây nguy hiểm đến tính mạng
Lọc thư rác Precision Việc chặn email hợp lệ (dương tính giả) gây mất cơ hội kinh doanh
Phát hiện gian lận Recall Gian lận gây thiệt hại hàng nghìn USD mỗi vụ việc
Kết quả tìm kiếm Precision Các kết quả không liên quan (dương tính giả) gây khó chịu cho người dùng

Kiểm tra nhanh: Một mô hình sàng lọc hồ sơ ứng viên. Nó có độ nhạy (recall) cao (phát hiện được 95% ứng viên đủ điều kiện) nhưng độ chính xác (precision) lại thấp (chỉ 40% số hồ sơ được chọn thực sự đủ điều kiện). Thực tế sẽ ra sao?

Bộ phận nhân sự phải xem xét nhiều hồ sơ không đạt yêu cầu (60% số hồ sơ được chọn thực tế không đạt), gây lãng phí thời gian. Tuy nhiên, rất ít ứng viên đủ điều kiện bị bỏ sót (chỉ 5% bị lọt lưới). Liệu điều này có chấp nhận được không?

Câu trả lời phụ thuộc vào thị trường tuyển dụng. Trong thị trường lao động khan hiếm nhân tài (nơi việc bỏ sót người giỏi gây thiệt hại lớn), độ nhạy cao là yếu tố đáng giá để đánh đổi lấy thời gian xem xét hồ sơ tăng thêm. Ngược lại, trong thị trường dư thừa ứng viên, độ chính xác cao (giúp giảm thiểu việc xem xét hồ sơ lãng phí) lại quan trọng hơn.

Chỉ số F1: Cân bằng giữa hai yếu tố

Chỉ số F1 là trung bình điều hòa của độ chính xác (precision) và độ nhạy (recall) - một con số duy nhất giúp cân bằng cả hai chỉ số này:

F1 = 2 × (Precision × Recall) / (Precision + Recall)

Chỉ số F1 đạt mức cao nhất khi cả độ chính xác và độ nhạy đều cao. Nếu một trong hai chỉ số thấp, F1 sẽ giảm theo. Điều này biến F1 thành một thước đo tổng hợp hữu ích khi bạn quan tâm đến cả việc phát hiện các trường hợp dương tính (độ nhạy) lẫn việc tránh các cảnh báo sai (độ chính xác).

Khi nào nên dùng F1: Với các tập dữ liệu mất cân bằng (nơi độ chính xác tổng thể - accuracy - có thể gây hiểu lầm) và hầu hết những bài toán phân loại trong thực tế.

Vấn đề Overfitting và Underfitting trong Machine Learning

Thách thức cơ bản nhất trong Machine Learning (ML): Xây dựng một mô hình có khả năng học được các quy luật thực tế mà không học thuộc lòng các dữ liệu nhiễu.

Overfitting - Mô hình quá phức tạp

  • Mô hình học thuộc lòng dữ liệu huấn luyện, bao gồm cả nhiễu
  • Độ chính xác trên tập huấn luyện: Rất cao
  • Độ chính xác trên tập kiểm tra: Thấp hơn đáng kể
  • Mô hình giống như đã "học thuộc đáp án" thay vì thực sự hiểu kiến ​​thức.

Underfitting - Mô hình quá đơn giản

  • Mô hình quá đơn giản để nắm bắt được các quy luật thực tế
  • Độ chính xác trên tập huấn luyện: Thấp
  • Độ chính xác trên tập kiểm tra: Cũng thấp
  • Mô hình giống như "chưa học bài kỹ".

Điểm tối ưu: Một mô hình đủ phức tạp để nắm bắt các quy luật thực tế nhưng cũng đủ đơn giản để có thể khái quát hóa tốt trên dữ liệu mới.

Cách phát hiện hiện tượng quá khớp (overfitting)

  1. So sánh độ chính xác huấn luyện với độ chính xác kiểm tra - khoảng cách lớn báo hiệu hiện tượng quá khớp.
  2. Sử dụng kiểm định chéo (cross-validation) - độ biến thiên cao giữa các fold cho thấy sự không ổn định.
  3. Vẽ đồ thị đường cong học tập - nếu độ chính xác huấn luyện tiếp tục tăng trong khi độ chính xác kiểm tra chững lại hoặc giảm, thì hiện tượng overfitting đang xảy ra.

Cách khắc phục hiện tượng overfitting

  • Đơn giản hóa mô hình (ít tham số hơn, cây đơn giản hơn)
  • Thêm chuẩn hóa (hình phạt cho sự phức tạp)
  • Thu thập thêm dữ liệu huấn luyện (khó ghi nhớ hơn với tập dữ liệu lớn)
  • Sử dụng dropout trong mạng nơ-ron (vô hiệu hóa ngẫu nhiên các nơ-ron trong quá trình huấn luyện)

Sự đánh đổi giữa độ lệch và phương sai 

Đây là khung lý thuyết đằng sau hiện tượng overfitting và underfitting:

Độ lệch = mức độ sai lệch giữa dự đoán của mô hình và thực tế (sai số hệ thống)

Độ lệch cao có nghĩa là mô hình quá đơn giản - nó bị underfitting.

Phương sai = mức độ thay đổi của dự đoán khi bạn huấn luyện trên các tập dữ liệu khác nhau.

Phương sai cao có nghĩa là mô hình quá nhạy cảm với dữ liệu huấn luyện cụ thể - nó bị overfitting.

Độ lệch thấp Độ lệch cao
Phương sai thấp Mô hình lý tưởng Underfitting
Phương sai cao Overfitting Trường hợp xấu nhất

Bạn không thể giảm thiểu cả hai yếu tố này cùng lúc - đó chính là sự đánh đổi. Mục tiêu là tìm ra mức độ phức tạp sao cho tổng sai số (độ chệch + phương sai) là thấp nhất.

Kiểm tra nhanh: Mô hình A đạt độ chính xác 92% trên tập huấn luyện và 90% trên tập kiểm tra. Mô hình B đạt 99% trên tập huấn luyện và 82% trên tập kiểm tra. Mô hình nào tốt hơn?

Đáp án: Mô hình A - khoảng cách 2% giữa tập huấn luyện và tập kiểm tra cho thấy khả năng tổng quát hóa tốt. Khoảng cách 17% của Mô hình B cho thấy hiện tượng overfitting nghiêm trọng. Mặc dù B có độ chính xác trên tập huấn luyện cao hơn, nhưng A sẽ hoạt động hiệu quả hơn trên dữ liệu thực tế. Luôn đánh giá dựa trên dữ liệu kiểm tra, không bao giờ đánh giá dựa trên dữ liệu huấn luyện.

Những điểm chính cần ghi nhớ

  • Accuracy có thể gây hiểu lầm khi dữ liệu bị mất cân bằng - một mô hình chỉ dự đoán lớp chiếm đa số sẽ đạt độ chính xác cao nhưng lại vô dụng
  • Precision (khi tôi dự đoán là dương tính, liệu có đúng không?) và Recall (trong số các trường hợp dương tính thực tế, tôi đã phát hiện được bao nhiêu?) giúp nắm bắt những khía cạnh mà độ chính xác bỏ sót
  • F1-score cân bằng giữa Precision và Recall thành một chỉ số duy nhất - hãy sử dụng nó cho các bài toán phân loại dữ liệu mất cân bằng
  • Overfitting (học vẹt dữ liệu huấn luyện) biểu hiện qua khoảng cách chênh lệch về hiệu suất giữa tập huấn luyện và tập kiểm tra - khắc phục bằng cách dùng mô hình đơn giản hơn, kỹ thuật điều chuẩn (regularization) hoặc bổ sung thêm dữ liệu
  • Underfitting (mô hình quá đơn giản) biểu hiện qua hiệu suất kém trên cả tập huấn luyện và tập kiểm tra - khắc phục bằng cách dùng mô hình phức tạp hơn hoặc chọn lọc đặc trưng tốt hơn
  • Sự đánh đổi giữa độ chệch (bias) và phương sai (variance) là mâu thuẫn cốt lõi: Mô hình quá đơn giản sẽ dẫn đến underfitting, còn quá phức tạp sẽ dẫn đến overfitting
  • Câu 1:

    Mô hình của bạn hoạt động hoàn hảo trên dữ liệu huấn luyện (độ chính xác 100%) nhưng chỉ đạt 72% trên dữ liệu kiểm thử. Chuyện gì đã xảy ra?

    GIẢI THÍCH:

    Khoảng cách giữa hiệu suất trên dữ liệu huấn luyện (100%) và dữ liệu kiểm thử (72%) là dấu hiệu điển hình của hiện tượng quá khớp. Mô hình quá phức tạp so với dữ liệu - nó đã tìm ra các quy luật chỉ tồn tại trong tập huấn luyện (nhiễu) mà không có khả năng tổng quát hóa cho dữ liệu mới. Hãy hình dung một học sinh học thuộc lòng mọi câu hỏi trong bài kiểm tra nhưng lại không thể giải quyết một bài toán mới. Các cách khắc phục: (1) mô hình đơn giản hơn (giới hạn độ sâu của cây, giảm số lớp trong mạng nơ-ron), (2) điều chuẩn (áp dụng hình phạt cho độ phức tạp), (3) thêm dữ liệu (khó học thuộc lòng hơn với tập dữ liệu lớn), (4) sử dụng kỹ thuật dropout trong mạng nơ-ron (ngẫu nhiên vô hiệu hóa các nơ-ron trong quá trình huấn luyện để ngăn chặn sự phụ thuộc lẫn nhau).

  • Câu 2:

    Mô hình của bạn có độ chính xác (precision) cao (95%) nhưng độ nhạy (recall) thấp (60%) trong việc phát hiện gian lận. Điều này có ý nghĩa gì trong thực tế?

    GIẢI THÍCH:

    Precision và recall có mối quan hệ đánh đổi lẫn nhau. Việc tăng recall (phát hiện nhiều gian lận hơn) thường làm giảm precision (nhiều cảnh báo nhầm hơn). Sự cân bằng phù hợp phụ thuộc vào chi phí của từng loại sai sót. Trong việc phát hiện gian lận, việc bỏ sót một vụ gian lận thực sự gây thiệt hại hàng nghìn USD mỗi vụ, trong khi một cảnh báo sai chỉ tốn một cuộc gọi để xác minh. Do đó, các ngân hàng thường ưu tiên độ nhạy (recall) cao hơn - tức là phát hiện được nhiều vụ gian lận hơn - ngay cả khi phải chấp nhận độ chính xác (precision) thấp hơn (tức là có nhiều cảnh báo sai cần điều tra). Ngược lại, đối với việc lọc thư rác, tình huống lại khác: Các cảnh báo sai (xếp nhầm email hợp lệ vào thư rác) gây hậu quả nghiêm trọng hơn so với việc bỏ sót thư rác.

  • Câu 3:

    Một mô hình sàng lọc ung thư có độ chính xác 99%. Nghe có vẻ tuyệt vời. Tuy nhiên, chỉ 1% số bệnh nhân được sàng lọc thực sự mắc ung thư. Vấn đề ở đây là gì?

    GIẢI THÍCH:

    Đây là vấn đề mất cân bằng lớp (class imbalance), và là một trong những bài học quan trọng nhất khi đánh giá mô hình Machine Learning (ML). Khi 99% dữ liệu thuộc về một lớp, một mô hình đơn giản chỉ luôn dự đoán lớp chiếm đa số cũng đạt độ chính xác 99% nhưng lại hoàn toàn vô dụng. Đối với sàng lọc ung thư, recall là quan trọng nhất: "Trong số tất cả bệnh nhân thực sự mắc ung thư, chúng ta đã xác định đúng bao nhiêu phần trăm?". Việc bỏ sót một ca ung thư (âm tính giả - false negative) nguy hiểm hơn nhiều so với một cảnh báo nhầm (dương tính giả - false positive). Độ chính xác thường che giấu sự đánh đổi này.

Thứ Sáu, 02/10/2026 08:51
5 ★ 1 👨
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
❖ Machine Learning