Xác thực chéo (tổng quát hóa lỗi) sau khi chọn mô hình


21

Lưu ý: Trường hợp là n >> p

Tôi đang đọc các yếu tố của học thống kê và có nhiều đề cập khác nhau về cách "đúng" để thực hiện xác nhận chéo (ví dụ trang 60, trang 245). Cụ thể, câu hỏi của tôi là làm thế nào để đánh giá mô hình cuối cùng (không có bộ kiểm tra riêng) bằng cách sử dụng CV gấp hoặc bootstrapping khi đã có một tìm kiếm mô hình? Dường như trong hầu hết các trường hợp (thuật toán ML không có lựa chọn tính năng nhúng) sẽ có

  1. Bước lựa chọn tính năng
  2. Bước chọn tham số meta (ví dụ: tham số chi phí trong SVM).

Những câu hỏi của tôi:

  1. Tôi đã thấy rằng bước lựa chọn tính năng có thể được thực hiện khi lựa chọn tính năng được thực hiện trên toàn bộ tập huấn luyện và được đặt sang một bên. Sau đó, bằng cách sử dụng CV gấp, thuật toán chọn tính năng được sử dụng trong mỗi lần gấp (nhận các tính năng khác nhau có thể được chọn mỗi lần) và trung bình lỗi. Sau đó, bạn sẽ sử dụng các tính năng được chọn bằng cách sử dụng tất cả dữ liệu (được đặt sang một bên) để huấn luyện chế độ cuối cùng, nhưng sử dụng lỗi từ xác thực chéo để ước tính hiệu suất của mô hình trong tương lai. LÀ ĐÚNG NÀY?
  2. Khi bạn đang sử dụng xác thực chéo để chọn tham số mô hình, thì làm thế nào để ước tính hiệu suất mô hình sau đó? ĐÓ LÀ QUY TRÌNH CÙNG NHƯ SỐ 1 TRÊN HAY BẠN NÊN SỬ DỤNG CV NESTED THÍCH SHOWN TRÊN TRANG 54 ( pdf ) HOẶC SOMETHING ELSE?
  3. Khi bạn đang thực hiện cả hai bước (thiết lập tính năng và tham số) ..... thì bạn sẽ làm gì? vòng lặp lồng phức tạp?
  4. Nếu bạn có một mẫu giữ riêng, liệu mối quan tâm có biến mất và bạn có thể sử dụng xác thực chéo để chọn các tính năng và tham số (không phải lo lắng vì ước tính hiệu suất của bạn sẽ đến từ một bộ giữ ngoài)?

@ user2040 (+1) Những câu hỏi đó thực sự rất hay! Có thể tìm thấy một câu hỏi có liên quan ở đây: Lựa chọn tính năng cho mô hình cuối cùng của Cameron khi thực hiện xác thực chéo trong học máy .
chl

@chi Cảm ơn bạn, tôi đã thấy bài viết đó. Bạn có nghĩ rằng tôi đang đi đúng hướng với quá trình suy nghĩ của mình ít nhất? Có vẻ như một bộ kiểm tra độc lập cho phép chúng tôi tự do hơn trong việc sử dụng CV để lựa chọn tính năng và điều chỉnh / lựa chọn mô hình. Mặt khác, các vòng lặp lồng nhau xuất hiện cần thiết để đào tạo, điều chỉnh và ước tính tổng quát lỗi tất cả bằng cách sử dụng cùng một dữ liệu đào tạo.
B_Miner

Câu trả lời:


18

Điều quan trọng cần nhớ là để xác thực chéo để đưa ra ước tính hiệu suất (gần như) không thiên vị, mỗi bước liên quan đến việc điều chỉnh mô hình cũng phải được thực hiện độc lập trong mỗi lần của quy trình xác thực chéo. Điều tốt nhất cần làm là xem lựa chọn tính năng, cài đặt tham số meta / siêu tham số và tối ưu hóa các tham số dưới dạng các phần không thể thiếu của khớp mô hình và không bao giờ thực hiện bất kỳ một trong các bước này mà không thực hiện hai bước còn lại.

Xu hướng lạc quan có thể được đưa ra bằng cách khởi hành từ công thức đó có thể lớn đến mức đáng ngạc nhiên, như được chứng minh bởi Cawley và Talbot , trong đó độ lệch được giới thiệu bởi một sự ra đi rõ ràng lành tính lớn hơn sự khác biệt về hiệu suất giữa các phân loại cạnh tranh. Tệ hơn nữa là các giao thức thiên vị ủng hộ các mô hình xấu một cách mạnh mẽ nhất, vì chúng nhạy cảm hơn với việc điều chỉnh các tham số siêu và do đó dễ bị quá phù hợp với tiêu chí lựa chọn mô hình!

Trả lời các câu hỏi cụ thể:

Quy trình trong bước 1 là hợp lệ vì lựa chọn tính năng được thực hiện riêng biệt trong mỗi lần gấp, do đó, những gì bạn đang xác thực chéo là toàn bộ quy trình được sử dụng để phù hợp với mô hình cuối cùng. Ước tính xác thực chéo sẽ có xu hướng bi quan nhẹ vì tập dữ liệu cho mỗi lần gấp nhỏ hơn một chút so với toàn bộ tập dữ liệu được sử dụng cho mô hình cuối cùng.

Đối với 2, vì xác thực chéo được sử dụng để chọn tham số mô hình, sau đó bạn cần lặp lại quy trình đó một cách độc lập trong mỗi lần xác thực chéo được sử dụng để ước tính hiệu suất, bạn kết thúc với xác thực chéo lồng nhau.

Đối với 3, về cơ bản, có, bạn cần phải thực hiện xác thực chéo lồng nhau. Về cơ bản, bạn cần lặp lại trong mỗi lần xác thực chéo ngoài cùng (được sử dụng để ước tính hiệu suất) mọi thứ bạn định làm để phù hợp với mô hình cuối cùng.

Đối với 4 - có, nếu bạn có một bộ giữ riêng, thì điều đó sẽ đưa ra ước tính hiệu suất không thiên vị mà không cần xác thực chéo bổ sung.


lại câu trả lời của bạn cho Q1. Đó là vấn đề phải không? Rất thường chúng tôi nghĩ rằng chúng tôi đang xác nhận hợp lệ mô hình, trong khi thực tế chúng tôi đang xác thực chéo quy trình mô hình hóa. Sự khác biệt có thể là triết học, bởi vì khi bạn viết ra toán học, f có thể đại diện cho mô hình hoặc quy trình mô hình hóa. Nhưng sau đó, người ta có thể yêu cầu, là xác nhận chéo thủ tục những gì chúng ta muốn, hoặc xác nhận chéo mô hình. Bạn nghĩ gì?
qoheleth

Bạn không thể xác thực chéo một mô hình vì mô hình phụ thuộc vào mẫu dữ liệu mà nó được đào tạo, ngay khi bạn khớp nó với một mẫu dữ liệu khác thì đó là một mô hình khác. Điểm tôi thực sự đưa ra là nếu bạn điều chỉnh mô hình theo bất kỳ cách nào trên toàn bộ mẫu dữ liệu (ví dụ: bằng cách thực hiện lựa chọn tính năng), xác thực chéo sẽ đưa ra ước tính tổng quát lạc quan vì các phân vùng kiểm tra đã được sử dụng để điều chỉnh các khía cạnh của mô hình (tức là bộ tính năng được sử dụng). HTH.
Dikran Marsupial

Tôi không biết có ổn không khi tiếp tục thảo luận của chúng tôi trong phần bình luận, nhưng cho đến khi ai đó nói khác ... Vâng, tôi hiểu quan điểm của bạn về CV cần được thực hiện ở cấp độ ngoài cùng và tôi không phản đối. Trên thực tế, tôi vừa đưa ra lời khuyên tương tự cho đồng nghiệp của tôi ngày hôm qua. Tôi chỉ chỉ ra rằng chúng ta thường không chắc chắn những gì chúng ta đang xác nhận chéo. Đồng thời tôi tự hỏi nếu nhận được đánh giá về mô hình, chứ không phải là thủ tục mô hình hóa, là những gì chúng ta thực sự muốn. Một biện pháp khắc phục có thể là người ta có thể nghĩ rằng anh ta đang sử dụng lỗi thủ tục để ước tính lỗi mô hình. Có lẽ điều này hoạt động.
qoheleth

Chúng tôi không thể có được ước tính trực tiếp về hiệu suất của một mô hình cụ thể mà không có bộ kiểm tra bên ngoài. Tuy nhiên, hiệu năng của phương thức sản xuất một mô hình là một proxy hợp lý cho hiệu năng của chính mô hình đó, miễn là nó là toàn bộ phương thức được xác thực chéo. Nói cách khác, tôi đồng ý với tóm tắt trong câu cuối cùng của bạn!
Dikran Marsupial

5

Tôi đã thực hiện một phân tích xác thực chéo rộng rãi trên một tập dữ liệu có giá hàng triệu để có được và không có bộ xác thực bên ngoài nào khả dụng. Trong trường hợp này, tôi đã thực hiện xác nhận chéo lồng nhau rộng rãi để đảm bảo tính hợp lệ. Tôi đã chọn các tính năng và các tham số tối ưu hóa chỉ từ các bộ đào tạo tương ứng. Đây là chi phí tính toán cho các tập dữ liệu lớn, nhưng đó là điều tôi phải làm để duy trì tính hợp lệ. Tuy nhiên, có những điều phức tạp đi kèm với nó ... ví dụ, các tính năng khác nhau được chọn trong mỗi tập huấn luyện.

Vì vậy, câu trả lời của tôi là trong trường hợp bạn không có quyền truy cập khả thi vào bộ dữ liệu ngoài, đây là một cách hợp lý. Khi bạn có một bộ dữ liệu ngoài, bạn có thể đi đến thị trấn theo cách bạn muốn trên tập dữ liệu chính và sau đó kiểm tra một lần trên tập dữ liệu ngoài.


@ user2643: Bạn có bất kỳ tài liệu tham khảo nào để chia sẻ về cách bạn tạo CV lồng nhau không? Có phải nó cùng dòng với pdf tôi liên kết đến trong câu hỏi của tôi? Ngoài ra ..... đây là dữ liệu tiếp thị dữ liệu tình cờ?
B_Miner

@ user2643 Vấn đề với cách tiếp cận đó (đúng) là nó chỉ mang lại một tiêu chí duy nhất cho độ chính xác (phân loại) hoặc độ chính xác (hồi quy); bạn sẽ không thể nói "đó là những tính năng thú vị nhất" vì chúng thay đổi từ lần này sang lần khác, như bạn đã nói. Tôi đã làm việc với dữ liệu di truyền (600k biến) trong đó chúng tôi đã sử dụng CV 10 lần với lựa chọn tính năng nhúng, theo sơ đồ hoán vị (k = 1000, để thoải mái ở mức 5%) để đánh giá độ tin cậy của các phát hiện. Bằng cách này, chúng tôi có thể nói: "mô hình của chúng tôi có khái quát tốt hay không", không có gì hơn.
chl

2
Nếu các tính năng thay đổi từ lần này sang lần khác, điều đó có nghĩa là không có đủ thông tin để tự tin xác định các tính năng hữu ích, vì vậy tôi xem đó là một lợi thế của xác thực chéo (vì chỉ nhìn vào kết quả từ một mô hình duy nhất có khả năng có quá phù hợp với tiêu chí lựa chọn tính năng và do đó gây hiểu nhầm). Đối với các vấn đề với nhiều tính năng và ít quan sát, hồi quy sườn thường cho hiệu năng tốt hơn, vì vậy trừ khi xác định các tính năng là mục tiêu chính, tốt hơn là không nên thực hiện bất kỳ lựa chọn tính năng nào.
Dikran Marsupial

n«p

@ user2040: Xin lỗi vì đã trả lời trễ. Tôi đã tạo phần mềm của riêng mình theo cách tiếp cận CV lồng nhau. Bởi vì nghiên cứu của tôi liên quan đến tin sinh học, tôi dự định sớm gửi một mô tả về phần mềm cho một tạp chí tin sinh học. Nhưng nó có thể được sử dụng trong bất kỳ lĩnh vực nghiên cứu. Nếu bạn quan tâm đến việc dùng thử, xin vui lòng cho tôi biết. goldfish1434 tại yahoo dot com
user2643
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.