Series: Machine Learning Fundamentals – Bài 15
Sau khi xây dựng mô hình Machine Learning, bước tiếp theo là đánh giá xem mô hình có thực sự hoạt động tốt hay không.
Nhiều người mới bắt đầu thường chia dữ liệu thành hai phần:
- Training Set để huấn luyện mô hình.
- Test Set để đánh giá hiệu suất.
Đây là cách làm phổ biến, nhưng không phải lúc nào cũng mang lại kết quả đáng tin cậy.
Nếu việc chia dữ liệu chỉ diễn ra một lần, kết quả đánh giá có thể bị ảnh hưởng mạnh bởi cách dữ liệu được phân chia.
Đó là lý do Cross Validation ra đời.
Train/Test Split có hạn chế gì?
Giả sử bạn có một tập dữ liệu gồm 1.000 mẫu.
Bạn chia:
- 80% để huấn luyện.
- 20% để kiểm tra.
Mô hình đạt Accuracy 95%.
Liệu mô hình có thực sự tốt?
Chưa chắc.
Nếu bạn chia dữ liệu theo một cách khác, Accuracy có thể chỉ còn 90% hoặc tăng lên 97%.
Điều này cho thấy kết quả đánh giá phụ thuộc khá nhiều vào cách chia dữ liệu.
Cross Validation là gì?
Cross Validation là kỹ thuật đánh giá mô hình bằng cách chia dữ liệu thành nhiều phần và lặp lại quá trình huấn luyện – kiểm tra nhiều lần.
Thay vì chỉ đánh giá trên một tập Test duy nhất, Cross Validation giúp mô hình được kiểm tra trên nhiều tập dữ liệu khác nhau.
Nhờ đó, kết quả phản ánh chính xác hơn khả năng tổng quát hóa của mô hình.
K-Fold Cross Validation
Phương pháp phổ biến nhất là K-Fold Cross Validation.
Giả sử chọn:
K = 5
Tập dữ liệu sẽ được chia thành 5 phần bằng nhau.
Quy trình diễn ra như sau:
Lần 1
- Fold 1 → Test
- Fold 2–5 → Train
Lần 2
- Fold 2 → Test
- Fold 1, 3, 4, 5 → Train
Tiếp tục cho đến khi:
- Mỗi Fold đều được sử dụng làm Test đúng một lần.
Cuối cùng:
Hiệu suất của mô hình được tính bằng trung bình của cả 5 lần đánh giá.
Quy trình Cross Validation
Toàn bộ dữ liệu
↓
Chia thành K Fold
↓
Huấn luyện K lần
↓
Mỗi lần chọn 1 Fold để Test
↓
Tính Accuracy từng lần
↓
Lấy giá trị trung bình
Nhờ quy trình này, mọi mẫu dữ liệu đều có cơ hội tham gia vào quá trình kiểm tra.
Vì sao Cross Validation đáng tin cậy hơn?
Cross Validation giúp giảm ảnh hưởng của việc chia dữ liệu ngẫu nhiên.
Ví dụ:
| Lần đánh giá | Accuracy |
|---|---|
| Fold 1 | 94% |
| Fold 2 | 96% |
| Fold 3 | 95% |
| Fold 4 | 94% |
| Fold 5 | 95% |
Accuracy trung bình:
94.8%
Con số này phản ánh ổn định hơn nhiều so với việc chỉ đánh giá một lần.
Chọn K bằng bao nhiêu?
Trong thực tế:
- K = 5 là lựa chọn phổ biến.
- K = 10 thường cho kết quả ổn định hơn.
- Leave-One-Out Cross Validation (LOOCV) sử dụng mỗi mẫu làm tập kiểm tra một lần, nhưng chi phí tính toán rất lớn.
Không có giá trị K tối ưu cho mọi bài toán.
Việc lựa chọn phụ thuộc vào kích thước dữ liệu và thời gian huấn luyện.
Khi nào nên sử dụng Cross Validation?
Cross Validation đặc biệt hữu ích khi:
- Tập dữ liệu nhỏ.
- Muốn so sánh nhiều mô hình.
- Tối ưu Hyperparameter.
- Đánh giá khả năng tổng quát hóa của mô hình.
Trong các nghiên cứu học thuật và nhiều dự án Machine Learning, Cross Validation gần như là một bước tiêu chuẩn trước khi lựa chọn mô hình cuối cùng.
Ưu điểm
- Đánh giá mô hình đáng tin cậy hơn.
- Giảm rủi ro do chia dữ liệu ngẫu nhiên.
- Tận dụng hiệu quả toàn bộ dữ liệu.
- Phù hợp để so sánh nhiều thuật toán khác nhau.
Hạn chế
Cross Validation cũng có một số nhược điểm.
- Thời gian huấn luyện lâu hơn.
- Chi phí tính toán cao hơn.
- Không phù hợp với một số bài toán dữ liệu chuỗi thời gian nếu sử dụng sai phương pháp.
Đối với dữ liệu Time Series, cần sử dụng các kỹ thuật Cross Validation chuyên biệt.
Train/Test Split hay Cross Validation?
| Train/Test Split | Cross Validation |
|---|---|
| Huấn luyện 1 lần | Huấn luyện K lần |
| Nhanh | Chậm hơn |
| Kết quả phụ thuộc cách chia | Ổn định hơn |
| Phù hợp dữ liệu rất lớn | Phù hợp đánh giá mô hình |
Kết luận
Cross Validation là một trong những kỹ thuật quan trọng nhất trong Machine Learning nhằm đánh giá khả năng tổng quát hóa của mô hình.
Bằng cách chia dữ liệu thành nhiều phần và lặp lại quá trình huấn luyện – kiểm tra, Cross Validation giúp giảm ảnh hưởng của việc chia dữ liệu ngẫu nhiên và mang lại kết quả đáng tin cậy hơn so với Train/Test Split thông thường.
Đây cũng là kỹ thuật được sử dụng rộng rãi trong nghiên cứu, thi đấu Kaggle và các dự án Machine Learning thực tế.
Bài tiếp theo
Trong bài viết tiếp theo, MCNA Technology School sẽ cùng bạn tìm hiểu:
Feature Engineering là gì? Vì sao dữ liệu tốt quan trọng hơn mô hình tốt?
Tiếp tục học Machine Learning cùng MCNA Technology School
Nếu bạn muốn không chỉ hiểu các khái niệm như Cross Validation, Overfitting, Underfitting hay Model Evaluation mà còn thực hành xây dựng mô hình Machine Learning bằng Python trên các bộ dữ liệu thực tế, hãy tham khảo các chương trình đào tạo dưới đây.
🤖 Combo 5 khóa AI & Power BI
Lộ trình dành cho người muốn học AI, Machine Learning, Data Analysis và trực quan hóa dữ liệu với Power BI.
👉 https://mcna.vn/khoa-hoc/khoa-hoc-combo-5-khoa-ai-va-power-bi/
🐍 Combo Python từ cơ bản đến nâng cao
Khóa học giúp xây dựng nền tảng lập trình Python phục vụ Data Analysis, Machine Learning và AI.
👉 https://mcna.vn/khoa-hoc/combo-python/
Thông tin tác giả
Tác giả: Bùi Đình Tuyển – Data Analyst tại MCNA Technology School
📞 Hotline: 0939.866.825 (Mr. Minh Khang)
🌐 Website: mcna.vn
📍 Hà Nội: 30 Trung Liệt, Đống Đa | Liền kề 44B TT2 Văn Quán, Hà Đông
📍 TP.HCM: 50B Phan Tây Hồ, Cầu Kiệu

