Gần đây, tôi đang làm việc trên một dự án và thấy tỷ lệ lỗi xác thực chéo của tôi rất thấp, nhưng tỷ lệ lỗi thiết lập thử nghiệm rất cao. Điều này có thể chỉ ra rằng mô hình của tôi là quá mức. Tại sao xác thực chéo của tôi không phù hợp trong khi thử nghiệm của tôi mặc trang phục?
Cụ thể hơn, tôi có khoảng 2 triệu quan sát với 100 biến (n >> p). Tôi chia ngẫu nhiên bộ dữ liệu thành 80/20 tàu và kiểm tra. Sau đó, tôi phù hợp với một mô hình (ví dụ XGboost) bằng cách sử dụng xác thực chéo 5 lần trên tập huấn luyện và tỷ lệ lỗi ước tính là khá thấp. Sau đó, tôi đã sử dụng cùng một cài đặt tham số và sử dụng toàn bộ tập huấn luyện để phù hợp với mô hình. Đáng ngạc nhiên, khi tôi sử dụng bộ kiểm tra để đánh giá hiệu suất của mô hình, tỷ lệ lỗi cao hơn đáng kể so với tỷ lệ lỗi CV. Tại sao?
Biên tập:
(Về tỷ lệ lỗi)
Các tỷ lệ lỗi thực sự là đa thức logloss. Tôi đã đạt được tỷ lệ lỗi CV là 1.320044 (+/- 0,002126) và tỷ lệ lỗi kiểm tra là 1.437881. Chúng có vẻ gần gũi khi nhìn chằm chằm vào hai con số này, nhưng thực tế, chúng không như vậy. Tôi không biết làm thế nào để biện minh cho điều này, nhưng tôi chắc chắn rằng chúng khác nhau trong phạm vi hoạt động của dự án này, từ ~ 1,55 đến ~ 1,30.
Cách xác thực chéo 5 lần như sau,
- chia đoàn tàu thành 5 bộ.
- Lặp lại phù hợp với một mô hình trên 4 bộ và kiểm tra hiệu suất trên bộ còn lại.
- trung bình hiệu suất của tất cả năm lần lặp.
Ý tôi là, nếu các thiết lập tham số của tôi làm cho mô hình vượt quá, thì tôi sẽ thấy nó ở quy trình xác thực chéo này, phải không? Nhưng tôi không thấy nó cho đến khi tôi sử dụng bộ thử nghiệm. Trong hoàn cảnh nào trên trái đất điều này có thể xảy ra?
Cảm ơn!
Thêm:
Lý do duy nhất tôi có thể nghĩ đó là lý do tại sao tỷ lệ lỗi CV khác với tỷ lệ lỗi của bộ kiểm tra là
Xác thực chéo sẽ không hoạt động tốt với dữ liệu bên ngoài nếu dữ liệu bạn có không phải là đại diện cho dữ liệu bạn sẽ cố gắng dự đoán! - đây
Nhưng tôi đã ngẫu nhiên chia 8/2 bộ dữ liệu 2 triệu mẫu và tôi tin rằng tập huấn luyện và tập kiểm tra nên có cùng một phân phối biến.
(Xin lỗi tôi rằng tôi cũng đăng câu hỏi tương tự ở đây .)
Biên tập:
(Về rò rỉ dữ liệu)
Tôi đã nhận được một lời khen thú vị từ @darXider được xác thực chéo . Anh ta nói,
Đôi khi khi tính năng kỹ thuật, bạn phải cẩn thận để tránh bất kỳ rò rỉ dữ liệu giữa tập huấn luyện và kiểm tra. Ví dụ: nếu bạn thực hiện PCA trên dữ liệu gốc, chưa được xử lý, hãy sử dụng PC1 và PC2 làm các tính năng "mới", sau đó chia dữ liệu của bạn thành đào tạo và kiểm tra, bạn đang rò rỉ thông tin từ tập huấn luyện thành tập kiểm tra. Điều đó sẽ tăng điểm số của bạn lên. Bạn đã đề cập rằng sau một số tính năng kỹ thuật, điểm CV và điểm kiểm tra của bạn bắt đầu không đồng ý. Điều đó có thể gợi ý một số loại rò rỉ thông tin giữa tập huấn luyện và tập kiểm tra.
Tôi tự hỏi chính xác "rò rỉ dữ liệu" là gì và tại sao tính năng phân tách TRƯỚC KHI vẫn có thể gây ra "rò rỉ dữ liệu" ??