Xác thực chéo khác với dữ liệu rình mò như thế nào?


13

Tôi vừa hoàn thành "Giới thiệu về học thống kê" . Tôi tự hỏi liệu sử dụng xác thực chéo để tìm các tham số điều chỉnh tốt nhất cho các kỹ thuật học máy khác nhau có khác với rình mò dữ liệu không?

Chúng tôi liên tục kiểm tra giá trị nào của tham số điều chỉnh dẫn đến kết quả dự đoán tốt nhất trong tập kiểm tra. Điều gì xảy ra nếu tham số điều chỉnh mà chúng ta đến chỉ xảy ra để phù hợp với thử nghiệm cụ thể này được đặt ngẫu nhiên và sẽ không hoạt động tốt trên một số thử nghiệm trong tương lai?

Xin thứ lỗi cho sự hiểu biết mới của tôi về học máy, và tôi rất muốn được giáo dục.

EDIT: Vui lòng xem câu trả lời của @AdamO về định nghĩa "rình mò dữ liệu". Tôi đã sử dụng thuật ngữ rất không chính xác trong câu hỏi của tôi.


Tôi rất vui khi thấy điều này ... có một TC vào ngày mai với một số nhà nghiên cứu đã công bố một cái gì đó .... không may mắc phải vấn đề này. Câu hỏi tuyệt vời!
pallevillesen

Câu trả lời:


12

Tôi tự hỏi liệu sử dụng xác thực chéo để tìm các tham số điều chỉnh tốt nhất cho các kỹ thuật học máy khác nhau có khác với rình mò dữ liệu không?

Mối quan tâm của bạn là đúng chỗ, và có rất nhiều tài liệu về chủ đề này, vd

Vấn đề là điều chỉnh siêu tham số với xác thực chéo là một quá trình tối ưu hóa dựa trên dữ liệu và vẫn sẽ có xu hướng phù hợp với tập dữ liệu của bạn (ít hơn điều chỉnh bởi lỗi đặt lại, nhưng vẫn). Cố gắng sử dụng kết quả xác thực chéo điều chỉnh làm thước đo hiệu suất "độc lập" theo cách giống như ăn miếng bánh (= điều chỉnh) và giữ (= đo hiệu suất mô hình cuối cùng).

Điều này không có nghĩa là bạn không nên sử dụng xác thực chéo để điều chỉnh siêu tham số. Nó chỉ có nghĩa là bạn có thể sử dụng nó cho một mục đích. Hoặc tối ưu hóa hoặc đo lường hiệu suất mô hình cho mục đích xác nhận.

Giải pháp là bạn cần thực hiện xác nhận độc lập để đo chất lượng của mô hình thu được với các siêu đường kính được điều chỉnh. Điều này được gọi là xác nhận lồng nhau hoặc kép. Bạn sẽ tìm thấy một số câu hỏi và câu trả lời ở đây về các chủ đề này

Về mặt khái niệm, tôi muốn nói rằng đào tạo bao gồm tất cả các loại bước ưa thích để phù hợp với không chỉ các tham số mô hình "thông thường" mà còn phù hợp (tự động điều chỉnh) các siêu đường kính. Vì vậy, tối ưu hóa dựa trên dữ liệu của rõ ràng là một phần của đào tạo mô hình.

Theo nguyên tắc thông thường, bạn cũng có thể nói rằng đào tạo mô hình là tất cả mọi thứ cần phải được thực hiện trước khi bạn có chức năng hộp đen cuối cùng sẵn sàng sử dụng để có thể đưa ra dự đoán cho các trường hợp mới.


PS: Tôi thấy thuật ngữ kiểm tra so với xác nhận rất khó hiểu bởi vì trong lĩnh vực của tôi "xác thực" có nghĩa là chứng minh rằng mô hình cuối cùng phù hợp với mục đích và do đó người khác gọi là kiểm tra thay vì xác nhận. Tôi thích gọi bộ kiểm tra bên trong là "bộ kiểm tra điều chỉnh" và "bộ kiểm tra xác thực cuối cùng" bên ngoài hoặc tương tự.


Cập nhật:

Vì vậy, nếu mô hình của tôi (tức là tham số điều chỉnh của tôi trong trường hợp này) không xác thực bên ngoài, tôi nên làm gì sau đó?

Thông thường, điều này không có gì xảy ra: có những tình huống điển hình có thể gây ra sự thất bại như vậy. Và tất cả các tình huống như vậy mà tôi biết là tình huống quá mức. Bạn cần lưu ý rằng trong khi chính quy hóa giúp giảm số lượng các trường hợp đào tạo cần thiết, tối ưu hóa dựa trên dữ liệu cần một lượng lớn dữ liệu.

Khuyến nghị của tôi:

  • Thông thường, bạn (nên) đã có những kỳ vọng khó khăn, ví dụ: hiệu suất nào sẽ đạt được, hiệu suất nào bạn cho là đẹp mắt đáng ngờ. Hoặc có thông số kỹ thuật hiệu suất bạn cần đạt được và hiệu suất cơ bản. Từ đó và số lượng các trường hợp đào tạo có sẵn (đối với sơ đồ chia tách mà bạn đã quyết định), hãy tính độ không đảm bảo dự kiến ​​cho các thử nghiệm bên trong (điều chỉnh). Nếu sự không chắc chắn đó chỉ ra rằng bạn sẽ không thể có được sự so sánh có ý nghĩa, thì đừng thực hiện tối ưu hóa dựa trên dữ liệu.

  • Bạn nên kiểm tra mức độ ổn định của cả hai dự đoán thu được với và tối ưu được tìm thấy bởi quy trình điều chỉnh tự động. Nếu λ không ổn định một cách hợp lý đối với các phân chia dữ liệu khác nhau của bạn, thì việc tối ưu hóa không hoạt động.

  • Nếu bạn thấy rằng bạn sẽ không thể thực hiện tối ưu hóa dựa trên dữ liệu hoặc cuối cùng nó không hoạt động, bạn có thể chọn theo kiến ​​thức chuyên môn của mình, ví dụ như từ kinh nghiệm với dữ liệu tương tự. Hoặc theo kiến ​​thức mà nếu bạn phát hiện ra rằng việc tối ưu hóa thất bại, bạn sẽ cần một sự chính quy hóa mạnh mẽ hơn: việc quá mức dẫn đến sự thất bại đối với các mô hình quá phức tạp.


1
Tôi đồng ý, việc đào tạo / kiểm tra / xác nhận thuật ngữ không trực quan lắm
M. Berk

3

k

λλ

"Dữ liệu rình mò" hoặc, như tôi có thể gọi nó, "Phân tích dữ liệu thăm dò" không giải quyết một câu hỏi được chỉ định trước. Bạn liệt kê một số kết quả có thể, rất thú vị và đánh giá chúng riêng lẻ. Bạn có thể thực hiện bất kỳ số lượng phân tích thăm dò nào và thông thường, bạn không lo lắng về nhiều thử nghiệm. Bạn có thể đánh giá từng phân tích thăm dò riêng lẻ bằng cách sử dụng xác thực chéo, nhưng vốn không phải là tài khoản cho nhiều thử nghiệm khi bạn có nhiều hơn 1 phân tích thăm dò. Các giả thuyết trong bối cảnh này có thể khá rộng và vươn xa, "yếu tố nào liên quan đến ung thư tuyến tiền liệt?" (từ đó uống cà phê, sử dụng ống dẫn tinh, v.v. được đo trong một đoàn hệ). Các kết quả quan trọng được xem là "tạo giả thuyết" và không cung cấp bằng chứng xác thực.

k


λλ

1
@Anh: việc điều chỉnh bằng xác nhận chéo không phải là xấu. Nhưng làm như vậy bạn "sử dụng hết" xác nhận chéo đó để điều chỉnh và bạn cần một xác nhận khác độc lập với mô hình bao gồm cả quá trình điều chỉnh. Không làm xác nhận bên ngoài này là BAD. Nếu cụ thể đó không hoạt động "một lần nữa" (ví dụ: trên một phân chia dữ liệu khác), tối ưu hóa của bạn không hoạt động. Trong tình huống đó, thông thường bạn cũng sẽ thấy một sự khác biệt lớn giữa kết quả xác nhận bên ngoài và hiệu suất "tốt nhất" được quan sát trong quá trình điều chỉnh.
cbeleites hỗ trợ Monica

@cbeleites Vì vậy, nếu mô hình của tôi (tức là tham số điều chỉnh của tôi trong trường hợp này) không xác thực bên ngoài, tôi nên làm gì sau đó? Tôi không thể quay lại và tìm một tham số điều chỉnh khác, vì về cơ bản, điều đó sẽ biến việc xác nhận bên ngoài thành tập kiểm tra điều chỉnh. Vậy lam gi?
Heisenberg

λ

λk -fold xác nhận để đánh giá hoặc có bao nhiêu tính năng đã được lựa chọn (nếu số lượng các tính năng khác nhau từ không đến 20, sau đó là bằng chứng thấp đặc hiệu cho 3 tính năng trong mô hình đào tạo). Tham số điều chỉnh thực tế, giống như khả năng, có ý nghĩa rất cụ thể về dữ liệu. Tôi sẽ không bao giờ báo cáo nó, nhưng tập trung vào sự nhạy cảm của kết quả là kết quả của việc thay đổi nó.
AdamO

1

Trên thực tế, trong CV, bạn cố gắng tìm các tham số tốt nhất trên bộ xác thực , khác với bộ kiểm tra. Bạn chia toàn bộ dữ liệu của mình thành ba bộ: tập huấn luyện, tập xác thực và tập kiểm tra. Khi bạn xác thực chéo đúng cách, bạn không bao giờ nhìn vào kết thúc kiểm tra cho đến khi kết thúc, do đó không có rình mò nào cả. Thực hiện xác nhận chéo trên bộ kiểm tra là một lỗi phương pháp nghiêm trọng (nhưng thường xuyên).


Nếu bộ xác nhận và bộ kiểm tra là khác nhau thì nó có ý nghĩa với tôi. Nhưng trong đó tôi không nghĩ có một bộ thử nghiệm riêng biệt.
Heisenberg

1
@Anh: cả hai phần tách có thể được thực hiện bằng cách lấy mẫu lại (ví dụ: xác thực chéo lặp lại) thay vì chỉ dành một bộ dữ liệu nhỏ.
cbeleites hỗ trợ Monica

@Anh: Trong xác thực chéo k-Fold, bạn chia k lần tập huấn ban đầu thành tập huấn luyện nhỏ hơn và tập xác thực. Bộ kiểm tra ban đầu không liên quan và chỉ được sử dụng ở cuối.
Jerorx

0

Nếu bạn tìm ví dụ ở trang 225 của "Giới thiệu về học thống kê" với ví dụ về Lasso, bạn sẽ thấy rằng họ thực sự thực hiện xác nhận chéo lồng nhau. Tức là lựa chọn mô hình được thực hiện trong cv.glmnetmột traintập hợp, được chia theo cv.glmnetgói thành các cặp kiểm tra tàu. Xác thực mô hình được thực hiện trên bộ xác thực (" test"), vì vậy nó là xác thực độc lập.

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.