Thật buồn cười khi câu trả lời được đánh giá cao nhất không thực sự trả lời được câu hỏi :) vì vậy tôi nghĩ sẽ rất tốt nếu sao lưu câu hỏi này với lý thuyết hơn một chút - chủ yếu được lấy từ "Khai thác dữ liệu: Công cụ và kỹ thuật máy học thực tế" và Tom Mitchell "Học máy" .
Giới thiệu.
Vì vậy, chúng tôi có một bộ phân loại và một bộ dữ liệu hạn chế, và một lượng dữ liệu nhất định phải được đưa vào tập huấn luyện và phần còn lại được sử dụng để thử nghiệm (nếu cần, một tập hợp con thứ ba được sử dụng để xác nhận).
Vấn đề nan giải mà chúng ta phải đối mặt là: để tìm ra một lớp tốt, "tập con đào tạo" phải càng lớn càng tốt, nhưng để có được một ước tính lỗi tốt, "tập con kiểm tra" phải càng lớn càng tốt - nhưng cả hai tập con đều được lấy từ cùng hồ bơi.
Rõ ràng là tập huấn luyện phải lớn hơn tập kiểm tra - nghĩa là, phần chia không nên là 1: 1 (mục tiêu chính là đào tạo , không phải kiểm tra ) - nhưng không rõ sự phân chia nên ở đâu.
Thủ tục giữ hàng.
Quy trình tách "superset" thành các tập con được gọi là phương thức giữ . Lưu ý rằng bạn có thể dễ dàng gặp xui xẻo và các ví dụ về một lớp nhất định có thể bị thiếu (hoặc đánh giá quá cao) trong một trong các tập hợp con, có thể được giải quyết qua
- lấy mẫu ngẫu nhiên, đảm bảo rằng mỗi lớp được thể hiện đúng trong tất cả các tập hợp dữ liệu - thủ tục được gọi là giữ nguyên strati
- lấy mẫu ngẫu nhiên với quá trình kiểm tra-kiểm tra-kiểm tra lặp đi lặp lại trên đầu trang - được gọi là tổ chức phân tầng lặp đi lặp lại
Trong một quy trình duy nhất (không lặp lại), bạn có thể xem xét hoán đổi vai trò của dữ liệu kiểm tra và huấn luyện và tính trung bình hai kết quả, nhưng điều này chỉ hợp lý với tỷ lệ 1: 1 giữa tập huấn luyện và kiểm tra không chấp nhận được (xem Giới thiệu ). Nhưng điều này đưa ra một ý tưởng và một phương pháp cải tiến (được gọi là xác thực chéo được sử dụng thay thế) - xem bên dưới!
Xác nhận chéo.
Trong xác thực chéo, bạn quyết định số lần gấp (phân vùng của dữ liệu). Nếu chúng ta sử dụng ba lần, dữ liệu được chia thành ba phân vùng bằng nhau và
- chúng tôi sử dụng 2/3 cho đào tạo và 1/3 cho thử nghiệm
- và lặp lại quy trình ba lần để cuối cùng, mọi trường hợp đã được sử dụng chính xác một lần để kiểm tra.
Điều này được gọi là xác thực chéo ba lần và nếu thông tin phân tầng cũng được thông qua (điều này thường đúng) thì nó được gọi là xác thực chéo ba lần phân tầng .
Nhưng, lo và kìa, cách tiêu chuẩn không phải là chia 2/3: 1/3. Trích dẫn "Khai thác dữ liệu: Các công cụ và kỹ thuật máy học thực tế" ,
Cách tiêu chuẩn [...] là sử dụng xác thực chéo 10 lần. Dữ liệu được chia ngẫu nhiên thành 10 phần trong đó lớp được biểu diễn theo tỷ lệ xấp xỉ như trong tập dữ liệu đầy đủ. Mỗi phần được tổ chức lần lượt và kế hoạch học tập được đào tạo trên chín phần mười còn lại; sau đó tỷ lệ lỗi của nó được tính trên tập hợp giữ. Do đó, quy trình học tập được thực hiện tổng cộng 10 lần trên các bộ huấn luyện khác nhau (mỗi bộ có rất nhiều điểm chung). Cuối cùng, 10 ước tính lỗi được tính trung bình để mang lại ước tính lỗi tổng thể.
Tại sao 10? Bởi vì "kiểm tra ..Extensive trên nhiều bộ dữ liệu, học các kỹ năng khác nhau, đã chỉ ra rằng 10 là về đúng số nếp gấp để có được ước tính tốt nhất của lỗi, và cũng có một số bằng chứng lý thuyết mà lưng lên này .." Tôi thiên đường Chúng tôi đã tìm thấy những bài kiểm tra mở rộng và bằng chứng lý thuyết mà họ muốn nói nhưng bài kiểm tra này có vẻ như là một khởi đầu tốt để đào thêm - nếu bạn muốn.
Về cơ bản họ chỉ nói
Mặc dù những tranh luận này không có nghĩa là kết luận, và cuộc tranh luận vẫn tiếp tục nổ ra trong giới học máy và khai thác dữ liệu về phương án tốt nhất để đánh giá, xác thực chéo 10 lần đã trở thành phương pháp tiêu chuẩn trong thực tế. [...] Hơn nữa, không có gì kỳ diệu về việc xác thực chéo chính xác số 10: 5 lần hoặc 20 lần có khả năng gần như tốt như vậy.
Bootstrap, và - cuối cùng! - câu trả lời cho câu hỏi ban đầu.
Nhưng chúng tôi vẫn chưa đi đến câu trả lời, tại sao tỷ lệ 2/3: 1/3 thường được đề xuất. Tôi nghĩ rằng nó được thừa hưởng từ phương pháp bootstrap .
Nó dựa trên việc lấy mẫu với sự thay thế. Trước đây, chúng tôi đặt một mẫu từ "tập hợp lớn" vào chính xác một trong các tập hợp con. Bootstraping là khác nhau và một mẫu có thể dễ dàng xuất hiện trong cả tập huấn luyện và kiểm tra.
Chúng ta hãy xem xét một kịch bản cụ thể trong đó chúng ta lấy một tập dữ liệu D1 gồm n trường hợp và lấy mẫu đó lần thứ n để thay thế, để lấy một tập dữ liệu khác của D2 phiên bản n .
Bây giờ xem hẹp.
Vì một số phần tử trong D2 sẽ (gần như chắc chắn) được lặp lại, nên phải có một số trường hợp trong bộ dữ liệu gốc chưa được chọn: chúng tôi sẽ sử dụng các phần tử này làm ví dụ kiểm tra.
Cơ hội mà một trường hợp cụ thể không được chọn cho D2 là gì? Xác suất được chọn trên mỗi lần lấy là 1 / n nên ngược lại là (1 - 1 / n) .
Khi chúng ta nhân các xác suất này với nhau, đó là (1 - 1 / n) ^ n , đó là e ^ -1 , khoảng 0,3. Điều này có nghĩa là bộ kiểm tra của chúng tôi sẽ vào khoảng 1/3 và bộ huấn luyện sẽ vào khoảng 2/3.
Tôi đoán đây là lý do tại sao nên sử dụng tỷ lệ chia 1/3: 2/3: tỷ lệ này được lấy từ phương pháp ước tính bootstrapping.
Gói nó lên.
Tôi muốn kết thúc với một trích dẫn từ cuốn sách khai thác dữ liệu (điều mà tôi không thể chứng minh nhưng giả sử chính xác) trong đó họ thường khuyên nên thích xác thực chéo 10 lần:
Thủ tục bootstrap có thể là cách tốt nhất để ước tính lỗi cho các bộ dữ liệu rất nhỏ. Tuy nhiên, giống như xác thực chéo một lần, nó có những nhược điểm có thể được minh họa bằng cách xem xét một tình huống cụ thể, đặc biệt [...] một bộ dữ liệu hoàn toàn ngẫu nhiên với hai lớp. Tỷ lệ lỗi thực sự là 50% cho bất kỳ quy tắc dự đoán nào. Nhưng một sơ đồ ghi nhớ tập huấn luyện sẽ cho điểm số tái lập hoàn hảo 100% để các trường hợp khắc phục = 0 và bootstrap 0,632 sẽ trộn nó với trọng số 0,368 đưa ra tỷ lệ lỗi tổng thể chỉ 31,6% (0,632 50% + 0,368 ¥ 0%), đó là sự lạc quan sai lầm.