Hello đồng đội Mì AI, từ bây giờ chúng ta sẽ cùng tò mò về K-Fold cross validation, một tốt chiêu khá xuất xắc khi họ không có tương đối nhiều dữ liệu cho những bài toàn Machine Learning và Deep Learning nhé.
Bạn đang xem: Cross validation là gì
K-Fold CV là một phương pháp để reviews model một cách đúng chuẩn khi chúng ta train mã sản phẩm nhưng gồm quá không nhiều dữ liệu.
Phần 1 – Vấn đề review “sai” model khi train với ít dữ liệu
Chắc hẳn bằng hữu đã rất gần gũi với biện pháp chia tài liệu train, valdiation và thử nghiệm đúng không? rõ ràng như hình sau:

Bây giờ đồng hồ ta tạm làm lơ Test set qua một bên chính vì đó là tập bọn họ sẽ áp dụng để kiểm tra model sau lúc train ngừng để xem model sẽ handle tài liệu như nào trong thực tế. Chúng ta xét train với val set thôi nha!
Thông thường các bạn sẽ thấy bọn họ hay phân tách train/val theo tỷ lệ 80/20 đúng không nhỉ nhỉ? 80% tài liệu (sau khi đã dồn phần test) sẽ là tài liệu để train mã sản phẩm và 20% còn lại sẽ làm dữ liệu để kiểm tra mã sản phẩm trong quá trình train.
Việc phân tách này trọn vẹn okie nếu khách hàng có lượng tài liệu đủ lớn. Tuy nhiên khi bạn có ít tài liệu thì vấn đề chia như này đã dẫn đến mã sản phẩm của bạn hoạt động cực kém. Lý do? Là vì hoàn toàn có thể một số điểm dữ liệu có lợi cho qúa trình train đã trở nên bạn ném vào để làm validation, kiểm tra và model không có cơ hội học điểm dữ liệu đó. Thậm chí, đôi lúc do ít tài liệu nên bao gồm một vài class chỉ gồm trong validation, chạy thử mà không tồn tại trong train (do việc chia train, val là trọn vẹn ngẫu nhiên) dẫn mang đến một tác dụng tồi tệ lúc validation và test. Với nếu bọn họ dựa ngay vào tác dụng đó để reviews rằng model không tốt thì thật là oan uổng mang lại nó y hệt như một học viên không được học Tiếng Anh mà yêu cầu đi thi TOEFL vậy =))
Và đó là lúc bọn họ cần cho K-Fold Cross Validation!
Phần 2 – Vậy K-Fold Cross Validation là gì?
K-Fold CV đã giúp họ đánh giá một model tương đối đầy đủ và đúng mực hơn khi bọn họ có một tập tài liệu không lớn. Để sau đó họ đưa ra quyết định model đó có phù hợp với dữ liệu, việc hiện tại hay là không để mà chỉ dẫn next action.
Bắt đầu nhé!

Như hình mặt train, các các bạn sẽ thấy:
Phần dữ liệu Test data sẽ đc để riêng biệt và giành riêng cho bước đánh giá sau cùng nhằm kiểm tra “phản ứng” của model khi chạm chán các tài liệu unseen trả toàn.Phần dữ liệu Training thì sẽ tiến hành chia đột nhiên thành K phần (K là một số trong những nguyên, hay chọn là 5 hoặc 10). Tiếp đến train mã sản phẩm K lần, các lần train sẽ chọn một phần làm dữ liệu validation với K-1 phần còn lại làm tài liệu training. Công dụng đánh giá model sau cùng sẽ là trung bình cộng hiệu quả đánh giá chỉ của K lần train. Đó chính là lý bởi vì sao ta nhận xét khách quan và chính xác hơn.Sau khi đánh giá hoàn thành model và nếu cảm thấy kết quả (ví dụ accuracy trung bình) đồng ý được thì ta rất có thể thực hiện một trong 2 phương pháp sau để tạo thành model cuối cùng (để đưa theo dùng predict):
Cách một: Trong quá trình train các fold, ta lưu giữ model rất tốt và mang model đó di sử dụng luôn. Cách này sẽ có ưu thế là không buộc phải train lại nhưng lại sở hữu nhược điểm là mã sản phẩm sẽ không chú ý được all data và hoàn toàn có thể không làm cho việc giỏi với các dữ liệu vào thực tế.Cách hai: train model 1 lần nữa với toàn bộ dữ liệu (không chia train, val nữa) và tiếp nối save lại và đưa theo predict với test set để xem tác dụng như như thế nào