Vì OP đã đặt tiền thưởng cho câu hỏi này, nên nó sẽ thu hút một số sự chú ý và do đó đây là nơi thích hợp để thảo luận về một số ý tưởng chung, ngay cả khi nó không trả lời trực tiếp cho OP.
Đầu tiên, tên:
a) xác thực chéo là tên chung cho tất cả các kỹ thuật ước lượng / đo lường sử dụng một bộ thử nghiệm khác với bộ tàu. Từ đồng nghĩa: ước lượng ngoài mẫu hoặc ngoài mẫu. Từ trái nghĩa: ước lượng trong mẫu.
Ước lượng trong mẫu là các kỹ thuật sử dụng một số thông tin trên tập huấn luyện để ước tính chất lượng mô hình (không nhất thiết là lỗi). Điều này rất phổ biến nếu mô hình có độ lệch cao - nghĩa là - nó đưa ra các giả định mạnh mẽ về dữ liệu. Trong các mô hình tuyến tính (một mô hình thiên vị cao), như trong ví dụ của câu hỏi, người ta sử dụng R bình phương, AIC, BIC, độ lệch, làm thước đo chất lượng mô hình - tất cả đều là các công cụ ước tính trong mẫu. Ví dụ, trong SVM, dữ liệu tỷ lệ trong vectơ hỗ trợ cho số lượng dữ liệu là ước tính lỗi trong mẫu của mô hình.
Có nhiều kỹ thuật xác nhận chéo:
b) giữ lại là phương pháp số 1 ở trên. Chia bộ thành một đào tạo và một bài kiểm tra. Có một lịch sử lâu dài của các cuộc thảo luận và thực hành về quy mô tương đối của tập huấn luyện và kiểm tra.
c) k- Fold - phương pháp # 2 ở trên. Khá chuẩn.
d) Rời khỏi một lần - phương pháp # 3 ở trên.
e) bootstrap : nếu bộ của bạn có N dữ liệu, hãy chọn ngẫu nhiên N mẫu CÓ THAY THẾ từ bộ đó và sử dụng nó làm huấn luyện. Dữ liệu từ bộ ban đầu chưa được lấy mẫu bất kỳ lúc nào được sử dụng làm bộ kiểm tra. Có nhiều cách khác nhau để tính toán ước tính cuối cùng về lỗi của mô hình sử dụng cả lỗi cho tập kiểm tra (ngoài mẫu) và lỗi cho tập huấn luyện (trong mẫu). Xem ví dụ, bootstrap .632. Tôi nghĩ đó cũng là một công thức .632+ - chúng là các công thức ước tính lỗi thực sự của mô hình bằng cách sử dụng cả lỗi ngoài mẫu và lỗi trong mẫu.
f) Trực giao với việc lựa chọn phương pháp trên là vấn đề lặp lại. Ngoại trừ bỏ qua một lần, tất cả các phương pháp trên có thể được lặp lại bất kỳ số lần nào. Trong thực tế, người ta có thể nói về việc giữ lại REPEATED, hoặc REPEATED k- Fold. Công bằng mà nói, hầu như luôn luôn phương thức bootstrap được sử dụng theo kiểu lặp đi lặp lại.
Câu hỏi tiếp theo là, phương pháp nào "tốt hơn". Vấn đề là "tốt hơn" nghĩa là gì.
1) Câu trả lời đầu tiên là liệu mỗi phương thức này có bị sai lệch cho việc ước tính lỗi mô hình hay không (đối với một lượng dữ liệu vô hạn trong tương lai).
2) Cách thay thế thứ hai là mức độ nhanh hay mức độ của mỗi phương thức này hội tụ đến lỗi mô hình thực sự (nếu chúng không bị sai lệch). Tôi tin rằng đây vẫn là một chủ đề nghiên cứu. Hãy để tôi chỉ vào hai bài báo này (đằng sau bức tường trả tiền) nhưng bản tóm tắt cho chúng ta một số hiểu biết về những gì chúng đang cố gắng thực hiện. Cũng lưu ý rằng việc gọi k- Fold là "xác thực chéo" là rất phổ biến .
Có lẽ có nhiều bài viết khác về các chủ đề này. Đó chỉ là một số ví dụ.
3) Một khía cạnh khác của "tốt hơn" là: đưa ra một thước đo cụ thể về lỗi mô hình bằng cách sử dụng một trong các kỹ thuật ở trên, bạn có thể chắc chắn rằng lỗi mô hình chính xác đã đóng.
Nói chung, trong trường hợp này, bạn muốn thực hiện nhiều biện pháp về lỗi và tính khoảng tin cậy (hoặc khoảng tin cậy nếu bạn làm theo phương pháp Bayes). Trong trường hợp này, vấn đề là bạn có thể tin tưởng bao nhiêu vào phương sai của tập hợp các biện pháp lỗi. Lưu ý rằng ngoại trừ loại bỏ một lần, tất cả các kỹ thuật ở trên sẽ cung cấp cho bạn nhiều biện pháp khác nhau ( k biện pháp cho k- Fold, n biện pháp cho n giữ không lặp lại) và do đó bạn có thể đo phương sai (hoặc độ lệch chuẩn ) của tập hợp này và tính khoảng tin cậy cho phép đo lỗi.
Ở đây mọi thứ trở nên hơi phức tạp. Từ những gì tôi hiểu được từ bài báo Không có công cụ ước tính không thiên vị về phương sai của xác thực chéo k (không phải sau paywall), người ta không thể tin vào phương sai bạn nhận được từ k- Fold - vì vậy người ta không thể xây dựng khoảng tin cậy tốt từ k - nếp gấp. Cũng từ những gì tôi hiểu được từ bài kiểm tra thống kê gần đúng để so sánh các thuật toán học phân loại được giám sát (không đứng sau paywall), các kỹ thuật sử dụng các biện pháp lặp đi lặp lại (lặp đi lặp lại k- gấp đôi, lặp đi lặp lại - không chắc chắn về bootstrap) sẽ ước tính phụ phương sai thực sự của thước đo lỗi (có thể dễ dàng nhận thấy điều đó - vì bạn đang lấy mẫu từ một tập hữu hạn nếu bạn lặp lại số đo rất lớn lần, các giá trị giống nhau sẽ tiếp tục lặp lại, giữ giá trị trung bình như nhau, nhưng làm giảm phương sai). Do đó, các kỹ thuật đo lặp đi lặp lại sẽ quá lạc quan về khoảng tin cậy.
Bài viết cuối cùng này đề nghị thực hiện 5 lần lặp lại 2 lần - mà ông gọi là 5 × 2 CV - như một sự cân bằng tốt của nhiều biện pháp (10) nhưng không lặp lại quá nhiều.
CHỈNH SỬA:
Tất nhiên, có những câu trả lời tuyệt vời trong Cross xác thực cho một số trong những câu hỏi này (mặc dù đôi khi chúng không đồng ý với nhau). Đây là một số:
Xác nhận chéo hoặc bootstrapping để đánh giá hiệu suất phân loại?
Sự khác nhau giữa xác thực chéo và bootstrapping để ước tính lỗi dự đoán
Xác nhận chéo hoặc bootstrapping để đánh giá hiệu suất phân loại?
Hiểu bootstrapping để xác nhận và lựa chọn mô hình
Nói chung, xác thực chéo thẻ là bạn của bạn ở đây.
Vậy đâu là giải pháp tốt nhất? Tôi không biết. Tôi đã sử dụng CV 5 × 2 khi tôi cần rất nghiêm ngặt, khi tôi cần chắc chắn rằng một kỹ thuật tốt hơn một kỹ thuật khác, đặc biệt là trong các ấn phẩm. Và tôi sử dụng một khoản giữ nếu tôi không có kế hoạch thực hiện bất kỳ thước đo phương sai hoặc độ lệch chuẩn nào, hoặc nếu tôi có những hạn chế về thời gian - chỉ có một mô hình học tập trong trạng thái chờ đợi .