Overfitting Là Gì? Khi Mô Hình “Học Vẹt” Thay Vì Học Thật

Tóm tắt nhanh: Overfitting xảy ra khi mô hình “học vẹt” luôn cả nhiễu và ngoại lệ trong dữ liệu huấn luyện, thay vì học xu hướng chung — khiến nó đúng gần 100% với dữ liệu cũ nhưng dự đoán sai với dữ liệu mới. Bài này giải thích cách nhận biết và tránh cái bẫy này.
Cái bẫy phổ biến nhất khi mới họcNguyên lý: holdout/validationÁp dụng được ngay cho mọi mô hình

Ở 2 bài trước, bạn đã học cách xây mô hình phân loại và hồi quy sao cho khớp với dữ liệu. Nhưng có 1 nghịch lý: 1 mô hình khớp quá hoàn hảo với dữ liệu huấn luyện thường lại là dấu hiệu XẤU, không phải tốt. Đây gọi là overfitting.

Vì sao “khớp hoàn hảo” lại là dấu hiệu xấu?

Dữ liệu thực tế luôn có nhiễu — sai số đo đạc, ngoại lệ ngẫu nhiên, yếu tố không kiểm soát được. Nếu 1 mô hình đủ phức tạp, nó có thể “vẽ” 1 đường ngoằn ngoèo đi qua chính xác từng điểm dữ liệu huấn luyện — kể cả những điểm nhiễu. Nhưng đường ngoằn ngoèo đó không phản ánh xu hướng thật, nên khi gặp dữ liệu mới, nó dự đoán sai nghiêm trọng.

Vừa đủOverfitting
Đường “vừa đủ” (trái) bỏ qua nhiễu, nắm được xu hướng chung. Đường overfitting (phải) đi qua mọi điểm kể cả nhiễu — trông “chính xác” hơn nhưng thực ra tệ hơn với dữ liệu mới.

Cách phát hiện: chia dữ liệu ra làm 2 phần

Cách đơn giản và phổ biến nhất để phát hiện overfitting là holdout: chia dữ liệu thành phần “huấn luyện” (để mô hình học) và phần “kiểm tra” (giữ riêng, mô hình không được nhìn thấy khi học). Nếu độ chính xác trên phần huấn luyện rất cao nhưng trên phần kiểm tra lại thấp hẳn — đó là dấu hiệu rõ ràng của overfitting.

Độ phức tạp của mô hình →Độ chính xácTrên dữ liệu HUẤN LUYỆN (train)Trên dữ liệu MỚI (test)Điểm bắt đầu overfit
Khi mô hình càng phức tạp, độ chính xác trên dữ liệu huấn luyện luôn tăng, nhưng trên dữ liệu mới sẽ giảm trở lại sau 1 điểm nhất định — đó là điểm bắt đầu overfitting.

Kỹ thuật nâng cao hơn gọi là cross-validation (kiểm định chéo): lặp lại việc chia-huấn luyện-kiểm tra nhiều lần với các phần dữ liệu khác nhau, để có đánh giá đáng tin cậy hơn là chỉ chia 1 lần duy nhất.

Xem thêm

Video này (tiếng Anh) giải thích khái niệm bias/variance — 2 loại lỗi đối nghịch mà overfitting và underfitting gây ra, giúp bạn hiểu sâu hơn vì sao cần tìm điểm “vừa đủ”.

Checklist tự kiểm tra sau bài này
  • Bạn giải thích được vì sao 1 mô hình “khớp hoàn hảo” với dữ liệu cũ có thể là dấu hiệu xấu.
  • Bạn biết cách dùng holdout (chia train/test) để phát hiện overfitting.
  • Bạn nghe qua và hiểu sơ về cross-validation, sẽ dùng thực hành ở Module 4.
Cần nhớ

Câu hỏi quan trọng nhất khi đánh giá 1 mô hình không phải là “nó đúng bao nhiêu % với dữ liệu đã có” mà là “nó sẽ đúng bao nhiêu % với dữ liệu nó CHƯA từng thấy”. Luôn dành riêng 1 phần dữ liệu để kiểm tra độc lập, đừng đánh giá mô hình chỉ dựa trên dữ liệu nó đã học.

Câu hỏi thường gặp

Mô hình đơn giản luôn tốt hơn mô hình phức tạp để tránh overfitting?

Không hẳn — mô hình quá đơn giản lại mắc lỗi ngược lại gọi là underfitting (không đủ khả năng nắm bắt xu hướng thật). Mục tiêu là tìm độ phức tạp “vừa đủ”, không phải càng đơn giản càng tốt.

Chia dữ liệu train/test theo tỷ lệ nào là hợp lý?

Phổ biến là 70-80% cho huấn luyện, 20-30% cho kiểm tra, nhưng tỷ lệ cụ thể phụ thuộc vào lượng dữ liệu bạn có. Sẽ thực hành cụ thể bằng Python ở Module 4.

Overfitting có liên quan gì đến việc phân tích báo cáo tài chính để đầu tư?

Rất liên quan: nếu bạn xây 1 quy tắc đầu tư khớp hoàn hảo với dữ liệu lịch sử của vài công ty, quy tắc đó có thể chỉ đang “học vẹt” các trường hợp cũ, không áp dụng được cho công ty mới.

Nguồn: Foster Provost & Tom Fawcett, Data Science for Business, Chương 5 “Overfitting and Its Avoidance” (O’Reilly, 2013). Nội dung diễn giải lại bằng lời riêng, không sao chép nguyên văn.