Bạn đang xem thử công khai
Đăng nhập để lưu tiến độ, làm bài tập, thảo luận và nhận phản hồi.
Một mô hình học thuộc lòng toàn bộ tập huấn luyện sẽ đạt độ chính xác 100% trên chính tập đó — và có thể vô dụng với dữ liệu mới. Đó là overfitting. Muốn biết mô hình có thực sự học được quy luật hay không, phải kiểm tra trên dữ liệu nó chưa từng thấy.
| Tập | Tỉ lệ thường dùng | Dùng để |
|---|---|---|
| Train | 60–80% | Huấn luyện mô hình |
| Validation | 10–20% | Chọn mô hình, chỉnh siêu tham số |
| Test | 10–20% | Đánh giá cuối cùng, chỉ dùng một lần |
Nếu chỉ chia hai phần (train/test) như trong buổi thực hành, hãy dùng kiểm định chéo trên tập train để thay vai trò của validation.
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(
x, y, test_size=0.2, random_state=1009)
random_state cố định cách chia ngẫu nhiên. Nhờ nó, chạy lại mã cho ra đúng kết quả cũ — điều kiện bắt buộc để so sánh hai phương án một cách công bằng.
Nếu chỉ 1% dữ liệu là gian lận, một lần chia ngẫu nhiên có thể đẩy gần hết ca gian lận vào tập train, để lại tập test gần như không có ca dương nào. Khi đó recall đo được là vô nghĩa.
x_train, x_test, y_train, y_test = train_test_split(
x, y, test_size=0.2, random_state=1009, stratify=y)
stratify=y giữ nguyên tỉ lệ các lớp ở cả hai tập.
Dùng tập test nhiều lần để chỉnh mô hình. Mỗi lần bạn xem kết quả test rồi quay lại sửa mô hình, tập test lại rò rỉ thêm một chút vào quyết định của bạn. Sau mười vòng như vậy, con số trên tập test không còn là ước lượng trung thực nữa. Hãy chỉnh trên validation, và chỉ chạm vào test đúng một lần cuối.