Có vẻ như lỗi xác thực chéo k-Fold rất nhạy cảm với loại đo lường hiệu suất. Bản thân nó cũng có một lỗi vì các tập huấn luyện và xác nhận được chọn ngẫu nhiên.
Tôi nghĩ rằng bạn đã phát hiện ra phương sai hiệu suất cao là tỷ lệ số lượng trường hợp, chẳng hạn như . Bạn cố gắng ước tính, ví dụ như xác suất phân loại của bạn trả lời đúng. Từ quan điểm thống kê, điều đó được mô tả như một thử nghiệm Bernoulli, dẫn đến phân phối nhị thức. Bạn có thể tính khoảng tin cậy cho các phân phối nhị thức và sẽ thấy rằng chúng rất rộng. Điều này tất nhiên giới hạn khả năng của bạn để làm so sánh mô hình.# dự đoán đúng# trường hợp kiểm tra
Với các mô hình xác thực lấy mẫu lại, chẳng hạn như xác thực chéo, bạn có một nguồn biến thể bổ sung: tính không ổn định của các mô hình của bạn (khi bạn xây dựng các mô hình thay thế trong mỗi lần chạy CV)k
Hơn nữa, việc thay đổi số lần gập mang lại cho tôi các giá trị tham số tối ưu khác nhau.
Đó là dự kiến do phương sai. Bạn có thể có một hiệu ứng bổ sung ở đây: libSVM chỉ chia tách dữ liệu một lần nếu bạn sử dụng xác thực chéo tích hợp sẵn của chúng để điều chỉnh. Do tính chất của SVM, nếu bạn xây dựng SVM với dữ liệu huấn luyện giống hệt nhau và thay đổi từ từ các tham số, bạn sẽ thấy các vectơ hỗ trợ (và do đó chính xác) nhảy: miễn là các tham số SVM không quá khác nhau, nó vẫn sẽ chọn các vectơ hỗ trợ tương tự. Chỉ khi các paraters được thay đổi đủ, đột nhiên các vectơ hỗ trợ khác nhau sẽ xuất hiện. Vì vậy, việc đánh giá lưới tham số SVM với các phân chia xác thực chéo chính xác có thể ẩn sự biến đổi mà bạn thấy giữa các lần chạy khác nhau.
IMHO vấn đề cơ bản là bạn thực hiện tìm kiếm dạng lưới, đó là một tối ưu hóa dựa trên hành vi hợp lý trơn tru của chức năng mục tiêu của bạn (độ chính xác hoặc bất cứ điều gì bạn sử dụng). Do phương sai hiệu suất cao của bạn, giả định này bị vi phạm. Sự phụ thuộc "tăng vọt" của mô hình SVM cũng vi phạm giả định này.
Số liệu chính xác để xác nhận chéo có thể quá lạc quan. Thông thường, bất cứ điều gì qua xác thực chéo 2 lần đều cho tôi độ chính xác 100%. Ngoài ra, tỷ lệ lỗi được rời rạc do kích thước mẫu nhỏ. Lựa chọn mô hình thường sẽ cho tôi cùng một tỷ lệ lỗi trên tất cả hoặc hầu hết các giá trị tham số.
Đó là dự kiến cho các vấn đề chung của phương pháp này.
Tuy nhiên, thông thường có thể chọn các giá trị tham số thực sự cực đoan trong đó trình phân loại bị hỏng. IMHO phạm vi tham số trong đó các SVM hoạt động tốt là thông tin quan trọng.
Trong mọi trường hợp, bạn hoàn toàn cần một xác nhận bên ngoài (gấp đôi / lồng nhau) về hiệu suất của mô hình bạn chọn là 'tốt nhất'.
Tôi có thể thực hiện một số lần chạy / lặp lại / lặp lại của xác thực chéo bên ngoài hoặc xác thực ngoài bootstrap bên ngoài và cung cấp phân phối
- siêu âm cho mô hình "tốt nhất"
- báo cáo hiệu suất của điều chỉnh
- quan sát hiệu suất của xác nhận bên ngoài
Sự khác biệt giữa hai cái cuối cùng là một chỉ số của quá mức (ví dụ do "lướt qua" phương sai).
Khi viết báo cáo, làm thế nào tôi biết rằng phân loại là 'tốt' hay 'chấp nhận được'? Trong lĩnh vực này, có vẻ như chúng ta không có thứ gì đó giống như mức độ phù hợp hoặc ngưỡng giá trị p thường được chấp nhận. Vì tôi đang thêm vào dữ liệu lặp đi lặp lại, tôi muốn biết khi nào nên dừng lại - một N tốt là gì khi mô hình không cải thiện đáng kể?
(Bạn đang thêm gì? Các trường hợp hoặc biến thể / tính năng?)
Trước hết, nếu bạn thực hiện mô hình lặp, bạn cần phải báo cáo rằng do quy trình phù hợp của bạn, hiệu suất của bạn không được coi trọng vì nó có xu hướng lạc quan. Thay thế tốt hơn là thực hiện xác nhận mô hình cuối cùng. Tuy nhiên, dữ liệu thử nghiệm phải độc lập với tất cả dữ liệu đã được đào tạo hoặc quy trình quyết định của bạn cho mô hình hóa (vì vậy bạn có thể không còn bất kỳ dữ liệu nào như vậy).