Làm thế nào để xác thực chéo một lần hoạt động? Làm thế nào để chọn mô hình cuối cùng trong số mô hình khác nhau?


25

Tôi có một số dữ liệu và tôi muốn xây dựng một mô hình (giả sử mô hình hồi quy tuyến tính) từ dữ liệu này. Trong bước tiếp theo, tôi muốn áp dụng Xác thực chéo một lần (LOOCV) trên mô hình để xem nó hoạt động tốt như thế nào.

Nếu tôi hiểu đúng LOOCV, tôi sẽ xây dựng một mô hình mới cho từng mẫu của mình (bộ thử nghiệm) bằng cách sử dụng mọi mẫu ngoại trừ mẫu này (bộ huấn luyện). Sau đó, tôi sử dụng mô hình để dự đoán tập kiểm tra và tính toán các lỗi .(predictedactual)

Trong bước tiếp theo, tôi tổng hợp tất cả các lỗi được tạo bằng hàm đã chọn, ví dụ như lỗi bình phương. Tôi có thể sử dụng các giá trị này để đánh giá chất lượng (hoặc mức độ phù hợp) của mô hình.

Câu hỏi: Mô hình nào là mô hình mà các giá trị chất lượng này áp dụng cho, vậy tôi nên chọn mô hình nào nếu tôi thấy các số liệu được tạo từ LOOCV phù hợp với trường hợp của tôi? LOOCV đã xem xét mô hình khác nhau (trong đó là cỡ mẫu); Tôi nên chọn mô hình nào?nn

  • Đây có phải là mô hình sử dụng tất cả các mẫu? Mô hình này không bao giờ được tính toán trong quá trình LOOCV!
  • Đây có phải là mô hình có ít lỗi nhất?

Câu trả lời:


24

Tốt nhất nên nghĩ về xác thực chéo như một cách ước tính hiệu suất tổng quát hóa của các mô hình được tạo bởi một thủ tục cụ thể, thay vì của chính mô hình. Xác thực chéo một lần về cơ bản là ước tính hiệu suất tổng quát hóa của một mô hình được đào tạo trên các mẫu dữ liệu , nói chung là một ước tính hơi bi quan về hiệu suất của một mô hình được đào tạo trên mẫu.n1n

Thay vì chọn một mô hình, điều cần làm là điều chỉnh mô hình phù hợp với tất cả dữ liệu và sử dụng LOO-CV để đưa ra ước tính hơi bảo thủ về hiệu suất của mô hình đó.

Tuy nhiên, xin lưu ý rằng LOOCV có phương sai cao (giá trị bạn sẽ nhận được thay đổi rất nhiều nếu bạn sử dụng một mẫu dữ liệu ngẫu nhiên khác nhau) thường khiến nó trở thành một lựa chọn ước tính xấu để đánh giá hiệu suất, mặc dù nó gần như không thiên vị. Tôi sử dụng tất cả thời gian để lựa chọn mô hình, nhưng thực sự chỉ vì nó rẻ (gần như miễn phí cho các mô hình kernel tôi đang làm việc).


Cảm ơn câu trả lời. Không phải là câu "sử dụng LOO-CV để cung cấp ước tính hơi bảo thủ về hiệu suất của mô hình đó." sai là trường hợp chung? Mô hình có thể trở nên tồi tệ hơn nếu tôi thêm một điểm khác, trong trường hợp đó LOO-CV có thể là một. ước tính lạc quan
theomega

1
Càng sử dụng nhiều dữ liệu để xây dựng mô hình, nhìn chung mô hình càng có khả năng tốt hơn. Trong khi điểm bổ sung có thể làm cho mô hình tồi tệ hơn một chút, có nhiều khả năng làm cho mô hình tốt hơn một chút. Vì vậy, nói chung loocv có một chút thiên vị bi quan, nhưng nó chỉ rất nhẹ, phương sai của công cụ ước tính LOOCV thường được xem xét lớn hơn nhiều.
Dikran Marsupial

Bạn nên sử dụng gì để đánh giá hiệu suất sau đó? (Giả sử việc thu thập dữ liệu rất tốn kém nên bạn muốn sử dụng tất cả dữ liệu có sẵn để phù hợp với mô hình).
diễn Bob

Bootstrap có lẽ. Hầu hết các mô hình tôi sử dụng đều có các tham số chính quy, v.v. cần phải điều chỉnh, vì vậy tôi thường sử dụng LOOCV để điều chỉnh các mô hình và bootstrap hoặc giữ lại lặp đi lặp lại để đánh giá hiệu suất.
Dikran Marsupial

@DikranMarsupial Bạn có chắc chắn về thực tế rằng CV rời khỏi một cung cấp một xu hướng bi quan? Theo như tôi biết, nó thường cung cấp ước tính lỗi thấp hơn so với K-Fold chẳng hạn. Ngoài ra, không LOOCV có 0 phương sai? Bạn chỉ có thể thực hiện LOOCV một lần, sau đó "bạn hết mẫu". Phương sai duy nhất tôi có thể nghĩ đến là phương sai được tạo ra bởi các thuật toán đào tạo được sử dụng để phù hợp với mô hình. Nhưng điều này nên được phương sai liên quan đến phương sai của các tham số tối ưu, chứ không phải với lỗi mô hình. Cảm ơn bạn.
D1X
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.