Kiểm định chéo (Cross-Validation)
1. Khái quát
A. Định nghĩa
Kiểm định chéo là kỹ thuật kiểm định dựa trên lấy mẫu lại (resampling), chia dữ liệu hiện có thành nhiều phân vùng huấn luyện/kiểm định luân phiên, huấn luyện và đánh giá mô hình lặp lại trên từng phân vùng, nhờ đó ước lượng hiệu năng tổng quát hóa ổn định hơn thay vì phụ thuộc vào một lần chia duy nhất.
Mục tiêu của mô hình học máy là hoạt động tốt trên dữ liệu tương lai chưa từng dùng để huấn luyện, tức khả năng tổng quát hóa. Nhưng dữ liệu ta có là hữu hạn: nếu huấn luyện trên toàn bộ thì không còn mẫu để kiểm định hiệu năng, còn nếu đánh giá trên một tập kiểm định tách ra một lần (holdout) thì ước lượng ấy dao động mạnh tùy theo mẫu nào tình cờ rơi vào tập kiểm định. Kiểm định chéo làm dịu nghịch lý này bằng cách "tái sử dụng" dữ liệu, để mọi mẫu đều tham gia kiểm định một lần, qua đó giảm phương sai của ước lượng và sử dụng dữ liệu hiệu quả.
B. Bối cảnh ra đời và sự cần thiết
Phát triển mô hình là chuỗi nhiều quyết định — chọn thuật toán, điều chỉnh siêu tham số, thiết kế đặc trưng — và để so sánh các lựa chọn một cách khách quan cần một ước lượng hiệu năng đáng tin cậy. Một lần chia holdout thì đơn giản nhưng mang hai vấn đề. Thứ nhất, dữ liệu càng ít thì tập kiểm định càng nhỏ, nên độ biến động (phương sai) của ước lượng càng lớn. Thứ hai, lặp đi lặp lại việc xem cùng một tập kiểm định để chọn siêu tham số khiến mô hình âm thầm quá khớp với tập kiểm định đó, nên hiệu năng báo cáo cao hơn hiệu năng vận hành thực tế.
Kiểm định chéo giải quyết vấn đề này bằng cách tái sử dụng dữ liệu để đánh giá nhiều lần. Đặc biệt trong các lĩnh vực chi phí thu thập dữ liệu lớn như y tế, sản xuất, tài chính, nơi mẫu chỉ ở mức vài trăm đến vài nghìn, kiểm định chéo cung cấp cơ sở so sánh đáng tin cậy hơn về mặt thống kê trên dữ liệu hạn chế, nên đã trở thành quy trình chuẩn trên thực tế. Hơn nữa, kiểm định chéo lồng nhau, vốn tách biệt lựa chọn mô hình khỏi báo cáo hiệu năng, ngăn chặn một cách có cấu trúc cái bẫy "quá khớp với tập kiểm định".
Về mặt lịch sử, kiểm định chéo được xác lập trong thống kê học những năm 1970 như một kỹ thuật lấy mẫu lại cho lựa chọn mô hình và ước lượng sai số dự báo, cùng với bootstrap và jackknife thuộc dòng phương pháp luận "ước lượng hiệu năng trên mẫu hữu hạn mà không giả định phân phối". Ngày nay, khi các thư viện như scikit-learn và caret cung cấp phân chia K-fold, phân tầng, chuỗi thời gian qua các API chuẩn, nó đã trở thành ngôn ngữ chung mà mọi nhà phân tích dữ liệu áp dụng mặc định. Tóm lại, kiểm định chéo là quy trình phổ quát và đã được kiểm chứng nhất để trả lời câu hỏi "có thể tin mô hình này không?".
C. Đặc điểm
- Tính tái sử dụng: mọi mẫu được dùng luân phiên cho huấn luyện và kiểm định, hiệu quả khai thác dữ liệu cao.
- Giảm phương sai: trung bình hóa hiệu năng trên nhiều lần chia làm ước lượng ổn định hơn một lần chia.
- Đánh đổi độ chệch-phương sai: số lần chia (k) và kích thước tập kiểm định đánh đổi giữa độ chệch và phương sai của ước lượng.
- Phụ thuộc điều kiện áp dụng: với dữ liệu chuỗi thời gian, theo nhóm, mất cân bằng, chia ngẫu nhiên đơn thuần làm méo hiệu năng, nên cần các kỹ thuật biến thể.
2. Nguyên lý và cấu trúc tổng thể của kiểm định chéo
Kiểm định chéo phân nhánh thành nhiều biến thể tùy theo "chia và tái sử dụng dữ liệu như thế nào". Sơ đồ cấu trúc dưới đây sắp xếp các kỹ thuật tiêu biểu theo phương thức chia và đặc tính dữ liệu.
flowchart TB
CV["Kiểm định chéo(Cross-Validation)"] --> H["Chia đơn giản<br/>Holdout"]
CV --> K["Chia lặp<br/>Họ K-Fold"]
CV --> N["Tách lựa chọn mô hình<br/>Nested CV"]
K --> KF["K-Fold cơ bản"]
K --> SK["K-Fold phân tầng<br/>Stratified"]
K --> LOO["LOOCV<br/>(k=N)"]
K --> RP["K-Fold lặp<br/>Repeated"]
CV --> S["Biến thể theo đặc tính dữ liệu"]
S --> TS["Chuỗi thời gian<br/>TimeSeriesSplit"]
S --> GP["Theo nhóm<br/>GroupKFold"]
style CV fill:#e8f0fe,stroke:#2f6fed,stroke-width:2px
style S fill:#fef3e8,stroke:#ed922f,stroke-width:1px
Nguyên lý cốt lõi xuyên suốt kiểm định chéo là đánh đổi độ chệch-phương sai. Cắt ra tập kiểm định lớn (làm tập huấn luyện nhỏ đi) khiến mô hình học không đủ và ước lượng hiệu năng bị chệch xuống, còn cắt ra tập kiểm định nhỏ làm phương sai của ước lượng tăng. Tăng số lần chia k làm tập huấn luyện mỗi vòng gần với toàn bộ, giảm độ chệch, nhưng vì các lần chia chia sẻ phần lớn dữ liệu huấn luyện nên các ước lượng hiệu năng trở nên tương quan, do đó lợi ích giảm phương sai bị giới hạn mà chỉ tăng chi phí tính toán. Vì vậy trong thực tế k=5 hoặc k=10 được dùng như quy tắc kinh nghiệm làm điểm cân bằng giữa độ chệch, phương sai và chi phí.
Một nguyên lý nữa là cô lập thông tin. Tập kiểm định phải mô phỏng "tương lai chưa từng thấy", nên các thống kê của tiền xử lý (chuẩn hóa, điền khuyết, chọn đặc trưng) phải được tính chỉ từ fold huấn luyện rồi áp dụng cho fold kiểm định. Nếu sự cô lập này bị phá vỡ, thông tin từ tập kiểm định rò rỉ vào huấn luyện — rò rỉ dữ liệu (data leakage) — và niềm tin mà kiểm định chéo mang lại trở thành ảo ảnh.
3. Các kỹ thuật chính và quy trình thực hiện
Sơ đồ quy trình dưới đây cho thấy một vòng của kiểm định chéo K-fold được dùng rộng rãi nhất cùng với luồng của kiểm định chéo lồng nhau (Nested), vốn bao gồm cả điều chỉnh siêu tham số.
flowchart LR
subgraph OUTER["Vòng ngoài — ước lượng hiệu năng"]
D["Toàn bộ dữ liệu"] --> SP["Chia thành K fold"]
SP --> TR["K-1 = fold huấn luyện"]
SP --> VA["1 = fold kiểm định"]
TR --> FIT["Huấn luyện mô hình<br/>(tiền xử lý chỉ trên fold huấn luyện)"]
FIT --> EV["Đánh giá trên fold kiểm định"]
EV --> AVG["Sau K vòng, trung bình và độ lệch chuẩn hiệu năng"]
end
subgraph INNER["Vòng trong — chọn siêu tham số"]
TR --> HP["Chia lại fold huấn luyện thành K' fold"]
HP --> GRID["Tìm kiếm siêu tham số"]
GRID --> BEST["Chọn giá trị tối ưu"]
BEST --> FIT
end
style OUTER fill:#e8f0fe,stroke:#2f6fed,stroke-width:1px
style INNER fill:#eafbea,stroke:#2faf5a,stroke-width:1px
A. Holdout
Phương pháp đơn giản nhất chia dữ liệu một lần, thường thành 70-80% huấn luyện và 20-30% kiểm định, rồi đánh giá. Vì tính toán chỉ diễn ra một lần nên nhanh và dễ triển khai, và trên dữ liệu lớn hàng trăm nghìn bản ghi trở lên, độ biến động của lần chia đủ nhỏ để đáng tin cậy. Thực tế, trong học sâu quy mô lớn cỡ ImageNet, chi phí huấn luyện lặp lại của kiểm định chéo là khổng lồ, nên việc dùng một phân chia cố định train/validation/test (holdout) là phổ biến.
Tuy nhiên holdout là chí tử khi dữ liệu khan hiếm. Ước lượng hiệu năng dao động vài điểm phần trăm tùy theo mẫu nào tình cờ dồn vào tập kiểm định. Ví dụ, dù một lần holdout trên 500 bản ghi y tế cho độ chính xác 82%, đổi seed chia có thể ra 76% hay 88%, khiến nó nguy hiểm khi dùng làm cơ sở so sánh mô hình.
Holdout cũng chia dữ liệu một lần thành "phần để huấn luyện" và "phần để kiểm định", nên 20-30% dùng cho kiểm định hoàn toàn không đóng góp cho huấn luyện. Trong tình huống dữ liệu quý giá, sự lãng phí này trực tiếp hạ thấp chất lượng mô hình.
B. Kiểm định chéo K-Fold
Kiểm định chéo K-fold chia dữ liệu thành k fold, rồi dùng mỗi fold một lần làm tập kiểm định và k-1 fold còn lại làm tập huấn luyện, nên lặp huấn luyện và đánh giá tổng cộng k lần và trung bình hóa hiệu năng. Mọi mẫu được dùng cho kiểm định đúng một lần nên không bỏ phí dữ liệu, và từ k giá trị hiệu năng có thể báo cáo cả trung bình và độ lệch chuẩn, đồng thời phán đoán "mô hình này trung bình tốt đến đâu, và ổn định đến đâu".
Lựa chọn k là một đánh đổi giữa độ chệch, phương sai và chi phí. k nhỏ (ví dụ k=3) làm tập huấn luyện nhỏ, gây chệch hiệu năng theo hướng bi quan, còn k lớn (ví dụ k=20) đưa tập huấn luyện gần với toàn bộ nhưng khiến các fold chia sẻ nhiều dữ liệu huấn luyện, làm các ước lượng tương quan và phải chạy huấn luyện 20 lần nên chi phí tăng vọt. Phần lớn thực tế vì vậy chọn k=5 (khoảng 20% kiểm định) hoặc k=10 (khoảng 10% kiểm định) làm điểm cân bằng này.
| Số lần chia k | Tỷ lệ tập huấn luyện mỗi vòng | Độ chệch ước lượng | Phương sai ước lượng | Chi phí tính toán |
|---|---|---|---|---|
| k=2-3 | 50-67% | Lớn (bi quan) | Nhỏ | Thấp |
| k=5 | 80% | Trung bình | Trung bình | Trung bình |
| k=10 | 90% | Nhỏ | Trung bình | Cao |
| k=N (LOOCV) | ≈100% | Gần như không | Lớn | Rất cao |
Như bảng cho thấy, tăng k không phải cứ thế cải thiện, đi đến cực đoan như LOOCV thì độ chệch biến mất nhưng phương sai và chi phí bùng nổ. Nói cách khác, đây không phải bài toán "chỉ cần tối đa hóa một chỉ số" mà là một quyết định thiết kế cân nhắc kích thước dữ liệu và ngân sách tính toán cùng nhau.
Một giá trị thực tế khác của K-fold là có thể báo cáo kèm độ bất định của hiệu năng. Ví dụ nếu mô hình A là "độ chính xác trung bình 84%, độ lệch chuẩn 2 điểm phần trăm" còn mô hình B là "trung bình 85%, độ lệch chuẩn 9 điểm phần trăm", xét riêng trung bình thì B tốt hơn, nhưng B dao động hiệu năng mạnh theo lần chia và có thể nguy hiểm khi vận hành. Kiểm định chéo nhờ vậy trình bày đồng thời trung bình và độ biến động, cung cấp cơ sở để chọn "mô hình ổn định hơn dù trung bình hơi thấp". Đây là thông tin mà một lần holdout không bao giờ cho được.
C. Kiểm định chéo phân tầng, LOOCV và lặp
K-Fold phân tầng (Stratified K-Fold) dùng lấy mẫu phân tầng để mỗi fold giữ nguyên tỷ lệ lớp của toàn bộ. Trong bài toán phân loại, nhất là dữ liệu mất cân bằng nơi dương tính chỉ chiếm 5%, chia ngẫu nhiên đơn thuần có thể để một số fold gần như không có dương tính, làm việc đánh giá vô nghĩa; chia phân tầng phân bổ dương tính đều khắp mọi fold, ngăn sự méo mó này. Trong phân loại nó thực tế được dùng làm giá trị mặc định.
LOOCV (Leave-One-Out) là cực đoan của k=N: để lại đúng một mẫu làm tập kiểm định, huấn luyện trên tất cả phần còn lại, và lặp điều này N lần. Vì tập huấn luyện gần như toàn bộ nên độ chệch của ước lượng hiệu năng là nhỏ nhất, nhưng phải huấn luyện N lần nên chi phí trở nên phi thực tế ngay khi dữ liệu đạt vài nghìn bản ghi, và có nhược điểm phương sai lớn của ước lượng. Do đó LOOCV được dùng hạn chế trong trường hợp mẫu chỉ ở mức vài chục đến vài trăm.
K-Fold lặp (Repeated K-Fold) xáo trộn các fold khác nhau mỗi lần, lặp toàn bộ K-fold nhiều lần và trung bình hóa kết quả. Nó được dùng khi muốn giảm thêm ảnh hưởng của "lần chia may/rủi" có thể phát sinh trong một lần K-fold đơn, hạ thấp hơn nữa phương sai của ước lượng trên dữ liệu nhỏ.
Hiệu quả của chia phân tầng rõ ràng qua con số. Giả sử 1.000 bản ghi phát hiện gian lận với 3% dương tính được chia thành 5 fold: với chia ngẫu nhiên đơn thuần, số dương tính mỗi fold thất thường — nhiều thì 14, ít thì 3 — nên ở một số fold thực tế không thể đo nổi recall. Ngược lại, chia phân tầng đặt khoảng 6 dương tính vào mỗi fold, giảm chính độ lệch hiệu năng giữa các fold và làm việc đánh giá trở nên công bằng. Lớp thiểu số càng khan hiếm thì khác biệt này càng mang tính quyết định.
D. Kiểm định chéo lồng nhau (Nested CV)
Nếu điều chỉnh siêu tham số và báo cáo hiệu năng dùng cùng một tập kiểm định, mô hình được chọn để khớp với tập kiểm định đó, nên hiệu năng báo cáo bị thổi phồng theo hướng lạc quan. Kiểm định chéo lồng nhau ngăn điều này bằng hai vòng lặp. Ở vòng trong, chỉ fold huấn luyện được chia lại để chọn siêu tham số, còn ở vòng ngoài toàn bộ quá trình lựa chọn đó được coi như một "mô hình" duy nhất và được đánh giá trên fold kiểm định ngoài chưa từng thấy. Nhờ vậy, hiệu năng tổng quát hóa của "toàn bộ pipeline bao gồm điều chỉnh" có thể được ước lượng không chệch.
Kiểm định chéo lồng nhau tăng tính toán theo tích số lần chia ngoài và trong (ví dụ 5×5 = 25 lần huấn luyện), nhưng đổi lại bảo đảm niềm tin trong các tình huống đòi hỏi báo cáo nghiêm ngặt việc so sánh mô hình, như bài báo, phản biện hay nộp cho cơ quan quản lý. Nó đặc biệt được khuyến nghị trong các lĩnh vực sinh học, y tế nơi dữ liệu khan hiếm và rủi ro quá khớp cao.
Nhận thức cốt lõi mà kiểm định chéo lồng nhau hé lộ là "tìm kiếm siêu tham số bản thân nó là một quá trình học". Nếu chọn trong hàng trăm tổ hợp siêu tham số theo điểm tập kiểm định, tổ hợp có điểm cao nhất có thể là kết quả đã tối ưu hóa không chỉ năng lực mà cả may mắn (noise). Ví dụ, thường xảy ra việc độ chính xác kiểm định chéo đo theo cách không lồng là 90% nhưng tụt xuống 86% khi đo lại theo cách lồng nhau, và khoảng cách 4 điểm phần trăm này chính là độ lớn của "quá khớp với tập kiểm định". Vì khi triển khai vận hành rốt cuộc xuất hiện hiệu năng gần 86%, kiểm định lồng nhau có thể gọi là thiết bị phơi bày trước cú sốc hiệu năng sau triển khai.
4. Kiểm định chéo cho các tình huống đặc biệt và ngăn rò rỉ dữ liệu
Niềm tin mà kiểm định chéo mang lại dựa trên tiền đề "tập kiểm định mô phỏng đúng dữ liệu tương lai". Các tình huống tiêu biểu phá vỡ tiền đề này là dữ liệu chuỗi thời gian và dữ liệu có cấu trúc nhóm, và dùng K-fold ngẫu nhiên đơn thuần ở đây sẽ đánh giá quá cao hiệu năng một cách nghiêm trọng.
Kiểm định chéo chuỗi thời gian phải cấm huấn luyện trên tương lai và đánh giá trên quá khứ. Dùng chia ngẫu nhiên làm các thời điểm tương lai lẫn vào huấn luyện, tạo rò rỉ "biết tương lai để đoán quá khứ". Thay vào đó, ta dùng forward chaining tôn trọng thứ tự thời gian — huấn luyện trên quá khứ → đánh giá trên khoảng ngay sau — như TimeSeriesSplit. Chẳng hạn một mô hình dự báo nhu cầu có thể cho MAPE 6% với K-fold ngẫu nhiên nhưng 11% với kiểm định tiến theo thứ tự thời gian, với trường hợp trước đánh giá quá cao hiệu năng vận hành — một hiện tượng thường gặp.
Kiểm định chéo theo nhóm (GroupKFold) chia theo nhóm để nhiều mẫu từ cùng một thực thể (bệnh nhân, người dùng, thiết bị nhà máy) không đồng thời vào huấn luyện và kiểm định. Nếu nhiều ảnh CT của cùng một bệnh nhân bị chia vào huấn luyện và kiểm định, mô hình ghi nhớ "bệnh nhân đó" thay vì "căn bệnh", nên độ chính xác kiểm định trông như 95% nhưng rơi xuống mức 70% trên bệnh nhân mới — loại rò rỉ này xảy ra. Chia theo nhóm chặn điều đó một cách có cấu trúc.
Ngăn rò rỉ dữ liệu là quy tắc chung của mọi kiểm định chéo, vượt ra ngoài các tình huống đặc biệt. Tiền xử lý như chuẩn hóa, điền khuyết, chọn đặc trưng và lấy mẫu quá mức (SMOTE) phải được fit chỉ trên fold huấn luyện của mỗi vòng và chỉ transform-áp dụng cho fold kiểm định. Lỗi thường gặp là scale toàn bộ dữ liệu một lần rồi mới chạy kiểm định chéo; điều này rò rỉ thông tin phân phối của fold kiểm định vào huấn luyện qua tiền xử lý, thổi phồng hiệu năng. Gói tiền xử lý và mô hình lại thành một với Pipeline của scikit-learn rồi đưa vào kiểm định chéo sẽ tự động bảo đảm sự cô lập này.
Đặc biệt, rò rỉ do thực hiện chọn đặc trưng bên ngoài kiểm định chéo trước là chí tử. Nếu chọn các đặc trưng hàng đầu có tương quan cao với mục tiêu trên toàn bộ dữ liệu rồi chỉ chạy kiểm định chéo trên các đặc trưng đó, bước chọn đặc trưng đã liếc nhìn đáp án của fold kiểm định, nên ngay cả các đặc trưng ngẫu nhiên vô nghĩa cũng có thể cho độ chính xác kiểm định chéo 70-80% trông có vẻ hợp lý như một ảo giác. Quy trình đúng là đưa chọn đặc trưng vào trong dữ liệu huấn luyện của mỗi fold và lặp nó bên trong vòng kiểm định chéo. Bất kỳ báo cáo hiệu năng nào bỏ qua nguyên tắc này đều sụp đổ ở bước tái lập.
5. Chuyên sâu — Xu hướng mới nhất và ứng dụng thực tế
Kết hợp với AutoML và tối ưu siêu tham số: các công cụ tự động hóa như Optuna và Auto-sklearn bên trong dùng điểm kiểm định chéo làm hàm mục tiêu để tìm siêu tham số. Khi đó, nếu tìm kiếm đeo đuổi điểm kiểm định chéo quá mức thì phát sinh siêu-quá-khớp với tập kiểm định, nên hiệu năng cuối cùng luôn phải được xác nhận trên một tập test riêng không dùng trong tìm kiếm, hoặc bằng kiểm định chéo lồng nhau.
Thỏa hiệp thực tế trong học sâu quy mô lớn: khi một lần huấn luyện mất nhiều ngày đến nhiều tuần, như với LLM và mô hình nền tảng thị giác, việc lặp k-fold thực tế là bất khả thi. Trong lĩnh vực này dùng phân chia holdout cố định (train/validation/test), nhưng bù lại bảo đảm niềm tin nhờ việc quy mô dữ liệu lớn nên phương sai của một lần chia là nhỏ. Nghĩa là kiểm định chéo càng giá trị khi dữ liệu càng nhỏ, và càng được thay bằng holdout khi dữ liệu càng lớn — một xu hướng rõ rệt.
Ý nghĩa thống kê của so sánh mô hình: để phán đoán chênh lệch hiệu năng trung bình kiểm định chéo giữa hai mô hình là "ngẫu nhiên hay thực", cần kiểm định thống kê vượt ra ngoài so sánh trung bình đơn thuần. Tuy nhiên vì hiệu năng các fold của kiểm định chéo chia sẻ dữ liệu huấn luyện nên không độc lập, một kiểm định t thông thường sẽ thổi phồng sai lầm loại I. Kiểm định t lấy mẫu lại có hiệu chỉnh (corrected resampled t-test) hoặc kiểm định dựa trên kiểm định chéo lặp được khuyến nghị. Điều này đáng hiểu trong mối liên hệ với [[clt-t-z-test]] như một phản ứng thực tế khi giả định của nó (tính độc lập) bị phá vỡ.
Kiểm định trong kỷ nguyên biến đổi phân phối (drift): khi phân phối dữ liệu của môi trường vận hành thay đổi theo thời gian, hiệu năng kiểm định chéo đo trên dữ liệu quá khứ không bảo đảm cho tương lai. Do đó kiểm định chéo không kết thúc như "một lần kiểm định trước triển khai"; kết hợp với [[data-quality-management]] và giám sát sau triển khai, nó có xu hướng trở thành một phần của vòng đời MLOps tái kiểm định định kỳ.
Mở rộng sang góc nhìn đối kháng và công bằng: gần đây có một dòng chảy mạnh nhằm đo không chỉ hiệu năng trung bình mà cả chênh lệch hiệu năng theo nhóm (giới tính, độ tuổi, vùng miền) trong quá trình kiểm định chéo để kiểm tra tính công bằng (fairness). Chẳng hạn, nếu phân tầng theo nhóm và tổng hợp chênh lệch recall của mỗi nhóm theo từng fold, có thể sàng lọc trước khi triển khai một mô hình có độ chính xác tổng thể cao nhưng chỉ tụt hiệu năng ở một nhóm thiểu số cụ thể. Điều này gắn với "đánh giá hiệu năng theo nhóm" mà các quy định như EU AI Act yêu cầu, cho thấy kiểm định chéo đang mở rộng vượt khỏi ước lượng hiệu năng đơn thuần thành công cụ kiểm chứng cho AI có trách nhiệm.
6. Điểm cần cân nhắc và hàm ý
Dưới góc nhìn Kỹ sư chuyên nghiệp, kiểm định chéo không chỉ là một kỹ thuật thống kê mà là hoạt động thiết kế để ra quyết định đáng tin cậy trên dữ liệu hạn chế. Cần cân nhắc toàn diện những điều sau trong lựa chọn kỹ thuật và vận hành.
- Tách chiến lược theo quy mô dữ liệu: dữ liệu nhỏ vài trăm đến vài nghìn bản ghi thì giảm phương sai bằng K-fold / kiểm định chéo lặp, còn huấn luyện quy mô lớn, chi phí cao (học sâu) hàng trăm nghìn trở lên thì kiểm soát chi phí bằng holdout cố định — thỏa hiệp khớp với quy mô là cốt lõi.
- Chọn kỹ thuật khớp với cấu trúc dữ liệu (đánh đổi): mất cân bằng phân loại cần K-fold phân tầng, chuỗi thời gian cần kiểm định tiến, đo lặp / trùng thực thể cần chia theo nhóm; chia ngẫu nhiên bỏ qua những điều này sẽ đánh giá quá cao hiệu năng và dẫn tới sự cố vận hành.
- Thể chế hóa việc chặn rò rỉ thành pipeline: đừng phó mặc cho sự cẩn trọng cá nhân quy tắc giới hạn việc fit thống kê tiền xử lý trong fold huấn luyện; hãy cưỡng chế một cách có cấu trúc bằng
Pipeline, feature store và tự động hóa kiểm định mới bảo đảm được tính tái lập và niềm tin. - Tách lựa chọn mô hình khỏi báo cáo hiệu năng: để tránh báo cáo hiệu năng cuối cùng trên tập kiểm định đã dùng để điều chỉnh, hãy đặt kiểm định chéo lồng nhau hoặc một tập test riêng để loại bỏ độ chệch lạc quan, áp dụng càng nghiêm ngặt khi mô hình càng thuộc diện bị quản lý và kiểm toán.
- Cân bằng chi phí-niềm tin và triển vọng: k, số lần lặp, và có lồng hay không đều là các đánh đổi giữa chi phí tính toán và niềm tin ước lượng, nên hãy thiết kế khớp với mức rủi ro của bài toán (rủi ro càng cao — y tế, tài chính — càng nghiêm ngặt). Sắp tới, hướng kết hợp với AutoML và hạ tầng huấn luyện phân tán để nội tại hóa kiểm định chéo vào pipeline, và mở rộng sang kiểm định liên tục đáp ứng biến đổi phân phối, là khả dĩ nhất.
Tài liệu tham khảo
- scikit-learn, "Cross-validation: evaluating estimator performance" — https://scikit-learn.org/stable/modules/cross_validation.html
- scikit-learn, "Nested versus non-nested cross-validation" — https://scikit-learn.org/stable/auto_examples/model_selection/plot_nested_cross_validation_iris.html
Tóm tắt một câu: Kiểm định chéo là kỹ thuật tái sử dụng dữ liệu thành nhiều lần chia huấn luyện/kiểm định để ước lượng hiệu năng tổng quát hóa một cách ổn định; nó đặt k theo đánh đổi độ chệch-phương sai-chi phí (thường 5-10), và qua các biến thể khớp với cấu trúc dữ liệu (mất cân bằng, chuỗi thời gian, nhóm) cùng việc chặn rò rỉ và kiểm định lồng nhau, cung cấp cơ sở đáng tin cậy cho lựa chọn mô hình.