3 tập dữ liệu cho ML — và cách xoay xở khi dữ liệu ít
🎯 Mục tiêu học (LO AI-3.2.3 · mức K2 – Hiểu): đối chiếu cách dùng tập training, validation, và test trong phát triển model ML.
💡 Ý cốt lõi: cần 3 tập dữ liệu tương đương (lấy ngẫu nhiên từ cùng một tập đại diện) để phát triển model — mỗi tập một vai trò riêng, không dùng lẫn cho nhau.
3 tập dữ liệu & vai trò
| Tập | Vai trò |
|---|---|
| Training dataset | Dùng để huấn luyện (train) model. |
| Validation dataset | Dùng để đánh giá rồi tinh chỉnh (tune) model — chọn hyperparameter. |
| Test dataset (holdout dataset) | Dùng để test model đã tinh chỉnh xong — đánh giá cuối cùng, không dùng lại cho tinh chỉnh. |
Nếu có đủ dữ liệu, lượng dữ liệu dành cho mỗi tập thường phụ thuộc: độ phức tạp kỳ vọng của model, thuật toán dùng để huấn luyện, mức tài nguyên sẵn có (RAM, ổ đĩa, năng lực tính toán, băng thông mạng, thời gian), và độ tin cậy mong muốn ở model kết quả.
Khi dữ liệu hạn chế: k-fold cross-validation
Khi dữ liệu ít, chia 3 phần (train/validation/test) có thể khiến phần dành cho huấn luyện không đủ, làm tăng nguy cơ underfitting. Chiến lược phổ biến: nếu khả thi, tách riêng một tập hold-out test nhỏ để dành đánh giá cuối; phần dữ liệu còn lại (gộp train + validation) dùng cho k-fold cross-validation (k là số nguyên tự chọn, thường 5 hoặc 10).
- Chia dữ liệu (train+validation) thành k phần (fold).
- Ở mỗi vòng: huấn luyện trên k-1 fold, validate trên fold còn lại. Lặp lại k lần, mỗi fold lần lượt đóng vai trò tập validation một lần.
- Dữ liệu thường được gán ngẫu nhiên vào các fold, hay dùng stratified sampling để mỗi fold đại diện tốt — đặc biệt quan trọng khi dữ liệu mất cân bằng hoặc tập nhỏ.
- Thước đo hiệu năng (accuracy, F1-score...) của mỗi fold được lấy trung bình để ước lượng đáng tin cậy hơn về khả năng khái quát hóa của model.
- Sau khi tìm được hyperparameter tối ưu qua cross- validation, model cuối thường được huấn luyện lại trên toàn bộ pool train+validation (mọi dữ liệu trừ hold-out test) với hyperparameter đó, rồi đánh giá một lần duy nhất trên tập hold-out test để có đánh giá cuối cùng, không thiên lệch.
⚠️ Lưu ý: nếu không thể tách được tập hold-out test do dữ liệu quá khan hiếm, thì hiệu năng trung bình từ cross-validation mang tính lạc quan thiên lệch (optimistically biased) — không thể dùng làm ước lượng không thiên lệch.
Ngoài k-fold, còn có các phương pháp resampling khác cho dữ liệu hạn chế: leave-one-out cross-validation (trường hợp đặc biệt của k-fold khi k bằng đúng số mẫu dữ liệu) và kỹ thuật bootstrap.
📝 Bẫy hay gặp
Đề hay cho một phát biểu nghe hợp lý nhưng sai — nhớ mấy chỗ gài sau:
- "Tập validation và tập test dùng thay thế nhau được" → SAI: validation dùng để tinh chỉnh model; test (holdout) dùng để đánh giá cuối, không được dùng để tinh chỉnh.
- "Không có hold-out test set thì kết quả cross-validation vẫn là ước lượng không thiên lệch" → SAI: khi đó kết quả mang tính lạc quan thiên lệch, không phải ước lượng không thiên lệch.
- "Trong k-fold, model cuối cùng được lấy từ một trong các fold đã huấn luyện" → SAI: model cuối được huấn luyện lại trên toàn bộ pool train+validation với hyperparameter tối ưu tìm được, không phải giữ lại model của một fold.
- "Leave-one-out là một kỹ thuật khác hẳn k-fold" → SAI: đây là trường hợp đặc biệt của k-fold khi k bằng số mẫu.
📌 Ghi nhớ
Training = huấn luyện · Validation = tinh chỉnh · Test/holdout = đánh giá cuối
Dữ liệu ít → k-fold cross-validation trên pool train+validation, giữ riêng hold-out test nếu khả thi
Với tester: khi review kết quả đánh giá model, hỏi ngay: con số này đến từ tập nào? Nếu chỉ là trung bình cross-validation mà không có hold-out test riêng, kết quả có thể bị thổi phồng — đừng vội tin đó là hiệu năng thực tế khi vận hành.
📖 Thuật ngữ Anh–Việt (mục này)
Đề thi dùng thuật ngữ tiếng Anh — nhớ đúng cụm bên trái. Bấm 🔊 để nghe từng từ, hoặc "Đọc tất cả" để nghe lần lượt Anh → (vài giây) → Việt.
| Thuật ngữ (EN) | Nghĩa & ghi nhớ nhanh |
|---|---|
| Training dataset | Tập dữ liệu huấn luyện |
| Validation dataset | Tập dữ liệu kiểm định — dùng để tinh chỉnh model |
| Test dataset / Holdout dataset | Tập dữ liệu kiểm thử — đánh giá cuối cùng |
| k-fold cross-validation | Kiểm định chéo k-lần |
| Fold | Phần dữ liệu con trong k-fold cross-validation |
| Stratified sampling | Lấy mẫu phân tầng — đảm bảo mọi nhóm con đều được đại diện |
| Leave-one-out cross-validation | Kiểm định chéo bỏ-một — trường hợp đặc biệt của k-fold |
| Bootstrap | Kỹ thuật lấy mẫu lặp lại có hoàn lại để ước lượng |
| Optimistically biased | Thiên lệch theo hướng lạc quan — kết quả cao hơn thực tế |
| Hyperparameter | Siêu tham số — cấu hình đặt trước khi huấn luyện |
🎯 Câu hỏi minh họa (phong cách đề CT-AI · K2)
A team has extremely limited data and cannot set aside a separate hold-out test set, so they rely only on the average performance across k-fold cross-validation. How should this reported performance be interpreted?
- a) As an unbiased estimate of real-world performance.
- b) As an optimistically biased estimate, not an unbiased one.
- c) As proof the model is underfitting.
- d) As equivalent to a leave-one-out result.
Xem bản dịch tiếng Việt
Một nhóm có dữ liệu cực kỳ hạn chế, không thể tách riêng tập hold-out test, nên chỉ dựa vào hiệu năng trung bình từ k-fold cross-validation. Kết quả hiệu năng này nên được hiểu thế nào?
a) Là ước lượng không thiên lệch của hiệu năng thực tế.
b) Là ước lượng mang tính lạc quan thiên lệch, không phải ước lượng không thiên lệch.
c) Là bằng chứng model đang underfit.
d) Tương đương kết quả leave-one-out.
Xem đáp án & giải thích
✅ Đáp án đúng: b — không có hold-out test set, kết quả trung bình cross-validation mang tính lạc quan thiên lệch.
a sai — đây chính xác là điều không nên kết luận khi thiếu hold-out test.
c sai — không có thông tin liên quan underfitting trong tình huống này.
d sai — leave-one-out chỉ tương đương khi k bằng số mẫu, không liên quan đến việc thiếu hold-out set.
Đề để tiếng Anh cho sát đề thi thật; phần giải thích để tiếng Việt cho dễ hiểu. Câu hỏi do maiqai.com tự soạn theo phong cách đề.
📎 Nguồn: Chương 3 – Machine Learning, mục 3.2.3 "Training, Validation, and Test Datasets", trang 32–33 — ISTQB® Certified Tester AI Testing Syllabus v2.0 (© International Software Testing Qualifications Board). Nội dung biên soạn/dịch ý lại bằng tiếng Việt, không sao chép nguyên văn.