CROSS VALIDATION LÀ GÌ

Hello bằng hữu Mì AI, từ bây giờ chúng ta vẫn cùng mày mò về K-Fold cross validation, một hay chiêu khá giỏi khi họ không có nhiều dữ liệu cho những bài toàn Machine Learning với Deep Learning nhé.

Bạn đang xem: Cross validation là gì

K-Fold CV là một phương thức để reviews model một cách đúng chuẩn khi họ train model nhưng gồm quá không nhiều dữ liệu.

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

Chắc hẳn bạn bè đã quen thuộc với biện pháp chia tài liệu train, valdiation và demo đúng không? cụ thể như hình sau:

*

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

Thông hay các các bạn sẽ thấy bọn họ hay chia train/val theo xác suất 80/20 đúng không nhỉ nhỉ? 80% tài liệu (sau khi đã cho phần test) sẽ là tài liệu để train mã sản phẩm và 20% còn sót lại sẽ làm tài liệu để kiểm tra model trong quy trình train.

Xem thêm: Bảng Bổ Trợ Đi Rừng Mùa 6 Liên Quân Mobile, Hướng Dẫn Cách Chơi

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

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

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

K-Fold CV sẽ giúp bọn họ đánh giá một model không thiếu và đúng đắn hơn khi bọn họ có một tập dữ liệu không lớn. Để sau đó bọn họ đưa ra quyết định model đó có phù hợp với dữ liệu, việc hiện tại hay không để mà giới thiệu 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 cho bước tấn công giá sau cùng nhằm kiểm soát “phản ứng” của model khi chạm mặt các tài liệu unseen trả toàn.Phần dữ liệu Training thì sẽ được chia hốt nhiên thành K phần (K là một số trong những nguyên, hay lựa chọn là 5 hoặc 10). Sau đó train model K lần, những lần train đã chọn 1 phần làm tài liệu validation với K-1 phần còn sót lại làm tài liệu training. Tác dụng đánh giá model ở đầu cuối sẽ là mức độ vừa phải cộng công dụng đánh giá bán của K lần train. Đó chính là lý vày vì sao ta reviews khách quan tiền và đúng chuẩn hơn.

Sau khi tấn công giá xong model với nếu cảm thấy hiệu quả (ví dụ accuracy trung bình) đồng ý được thì ta có thể thực hiện 1 trong các 2 biện pháp sau để tạo thành model ở đầu cuối (để đưa theo dùng predict):

Cách một: Trong quy trình train các fold, ta giữ giàng model tốt nhất và mang model đó di cần sử dụng luôn. Cách này đang có ưu điểm là không buộc phải train lại nhưng lại sở hữu nhược điểm là model sẽ không nhìn được all data và rất có thể không làm cho việc tốt với những dữ liệu vào thực tế.Cách hai: train mã sản phẩm 1 lần tiếp nữa với toàn bộ dữ liệu (không phân chia train, val nữa) và kế tiếp save lại và mang đi predict với demo set để xem công dụng như như thế nào