Chia Sẻ

Định Nghĩa Cross Validation Là Gì, Giới Thiệu Về K

Hello anh em Mì AI, hôm nay chúng ta sẽ cùng tìm hiểu về K-Fold cross validation, một tuyệt chiêu khá hay khi chúng ta không có nhiều dữ liệu cho các bài toàn Machine Learning và Deep Learning nhé.

Đang xem: Cross validation là gì

K-Fold CV là một phương pháp để đánh giá model một cách chính xác khi chúng ta train model nhưng có quá ít dữ liệu.

Phần 1 – Vấn đề đánh giá “sai” model khi train với ít dữ liệu

Chắc hẳn anh em đã quen thuộc với cách chia dữ liệu train, valdiation và test đúng không? Cụ thể như hình sau:

*

Bây giờ ta tạm bỏ qua Test set sang một bên bởi vì đó là tập chúng ta sẽ sử dụng để kiểm tra model sau khi train xong để xem model sẽ handle dữ liệu như nào trong thực tế. Chúng ta xét train và val set thôi nha!

Thông thường các bạn sẽ thấy chúng ta hay chia train/val theo tỷ lệ 80/20 đúng không nhỉ? 80% dữ liệu (sau khi đã bỏ phần test) sẽ là dữ liệu để train model và 20% còn lại sẽ làm dữ liệu để kiểm tra model trong quá trình train.

Xem thêm:

Việc chia này hoàn toàn okie nếu như bạn có lượng dữ liệu đủ lớn. Tuy nhiên khi bạn có ít dữ liệu thì việc chia như này sẽ dẫn đến model của bạn hoạt động cực kém. Lý do? Là vì có thể một số điểm dữ liệu có ích cho qúa trình train đã bị bạn ném vào để làm validation, test và model không có cơ hội học điểm dữ liệu đó. Thậm chí, đôi khi do ít dữ liệu nên có một vài class chỉ có trong validation, test mà không có trong train (do việc chia train, val là hoàn toàn ngẫu nhiên) dẫn đến một kết quả tồi tệ khi validation và test. Và nếu chúng ta dựa ngay vào kết quả đó để đánh giá rằng model không tốt thì thật là oan uổng cho nó giống như một học sinh không được học Tiếng Anh mà phải đi thi TOEFL vậy =))

XEM THÊM:  What Is The Difference Between " Poached Egg Là Gì, Poached Egg Là Gì, Nghĩa Của Từ Poached Egg

Và đó là lúc chúng ta cần đến K-Fold Cross Validation!

Phần 2 – Vậy K-Fold Cross Validation là gì?

K-Fold CV sẽ giúp chúng ta đánh giá một model đầy đủ và chính xác hơn khi chúng ta có một tập dữ liệu không lớn. Để sau đó chúng ta đưa ra quyết định model đó có phù hợp với dữ liệu, bài toán hiện tại hay không để mà đưa ra next action.

Xem thêm:

Bắt đầu nhé!

*

Như hình bên train, các bạn sẽ thấy:

Phần dữ liệu Test data sẽ đc để riêng và dành cho bước đánh giá cuối cùng nhằm kiểm tra “phản ứng” của model khi gặp các dữ liệu unseen hoàn toàn.Phần dữ liệu Training thì sẽ được chia ngẫu nhiên thành K phần (K là một số nguyên, hay chọn là 5 hoặc 10). Sau đó train model K lần, mỗi lần train sẽ chọn 1 phần làm dữ liệu validation và K-1 phần còn lại làm dữ liệu training. Kết quả đánh giá model cuối cùng sẽ là trung bình cộng kết quả đánh giá của K lần train. Đó chính là lý do vì sao ta đánh giá khách quan và chính xác hơn.

Sau khi đánh giá xong model và nếu cảm thấy kết quả (ví dụ accuracy trung bình) chấp nhận được thì ta có thể thực hiện một trong 2 cách sau để tạo ra model cuối cùng (để mang đi dùng predict):

Cách một: Trong quá trình train các fold, ta lưu lại model tốt nhất và mang model đó di dùng luôn. Cách này sẽ có ưu điểm là không cần train lại nhưng lại có nhược điểm là model sẽ không nhìn được all data và có thể không làm việc tốt với các dữ liệu trong 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à sau đó save lại và mang đi predict với test set để xem kết quả như nào

XEM THÊM:  Những Con Chiên Ngoan Đạo Hay Những Tín Đồ Mù Quáng? Con Chiên Ngoan Đạo

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button