Tôi có thể thực hiện tìm kiếm toàn diện với xác thực chéo để chọn tính năng không?


8

Tôi đã đọc một số bài viết về lựa chọn tính năng và xác thực chéo nhưng tôi vẫn có câu hỏi về quy trình chính xác.

Giả sử tôi có một bộ dữ liệu với 10 tính năng và tôi muốn chọn các tính năng tốt nhất. Cũng giả sử tôi đang sử dụng một phân loại hàng xóm gần nhất. Tôi có thể thực hiện tìm kiếm toàn diện bằng cách sử dụng xác thực chéo để ước tính tỷ lệ lỗi làm hướng dẫn để chọn các tính năng tốt nhất không? Một cái gì đó giống như mã giả sau đây

for i=1:( 2^10 -1)
   error(i)= crossval(1-nn, selected_fetures(i))
end   

i=find(erro(i)==min(error(i));
selected_fetures= selected_features(i);

Điều tôi đang cố gắng giải thích trong mã giả này là tôi đang chạy xác thực chéo cho tất cả các kết hợp tính năng có thể và chọn kết hợp đưa ra lỗi tối thiểu.

Tôi nghĩ rằng quy trình này là chính xác bởi vì tôi đang thực hiện tìm kiếm toàn diện. Việc lựa chọn các tính năng không dựa trên toàn bộ tập dữ liệu, mà dựa trên lỗi trung bình trên mỗi phân vùng. Tôi có quá mức cho mô hình với lựa chọn tính năng như vậy không?

Câu trả lời:


10

Vâng, bạn có khả năng kết thúc với sự phù hợp quá mức trong trường hợp này, xem câu trả lời của tôi cho câu hỏi trước đây . Điều quan trọng cần nhớ là xác nhận chéo là ước tính hiệu suất tổng quát dựa trên mẫu dữ liệu hữu hạn. Vì nó dựa trên một mẫu dữ liệu hữu hạn, công cụ ước tính có phương sai khác không, do đó, ở một mức độ nào đó, việc giảm lỗi xác thực chéo sẽ dẫn đến sự kết hợp giữa các lựa chọn mô hình thực sự cải thiện lỗi tổng quát hóa và các lựa chọn mô hình chỉ đơn giản là khai thác đặc thù ngẫu nhiên của mẫu dữ liệu cụ thể được đánh giá. Loại lựa chọn mô hình thứ hai có khả năng làm cho hiệu suất khái quát hóa kém hơn là tốt hơn.

Quá khớp là một vấn đề tiềm ẩn bất cứ khi nào bạn giảm thiểu bất kỳ thống kê nào dựa trên mẫu dữ liệu hữu hạn, xác thực chéo là không khác nhau.


1
Có thể nhưng xác thực chéo là một bước tiến lớn trên resubstitutin vì nó đánh giá trình phân loại trên một tập hợp dữ liệu không được sử dụng trong mô hình được trang bị.
Michael R. Chernick

2
vâng, nó ít có xu hướng phù hợp hơn so với công cụ ước tính tái lập, nhưng theo kinh nghiệm của tôi, nó vẫn là một vấn đề đủ lớn mà tìm kiếm toàn diện có thể là một ý tưởng tồi. Millar trong chuyên khảo về "lựa chọn tập hợp con trong hồi quy" khuyên nên sử dụng chính quy hóa thay vì lựa chọn tính năng nếu hiệu suất dự đoán là tiêu chí quan trọng và xác định các tính năng không phải là mục tiêu chính (phần nào diễn giải).
Dikran Marsupial

1
@Michael Không phải CV sai, đó là ý tưởng giảm thiểu nghiêm trọng lỗi trên không gian tính năng đã sử dụng (hoặc trên không gian tham số, là một bẫy liên quan). Ngay cả toàn bộ tập hợp là một tập hợp con ngẫu nhiên của thực tế, do đó tối ưu hóa này chỉ đơn giản là ngẫu nhiên và phải được xử lý phù hợp, hoặc bạn chắc chắn sẽ kết thúc trong một biến động không đáng kể - điều này có thể thấy rõ khi bạn khởi động toàn bộ phân tích. IMO theo cách này, tùy chọn duy nhất cho độ chính xác tốt hơn là một kỹ thuật mô hình hóa mạnh mẽ (thường xuyên hoặc ngẫu nhiên) và đối với fs giải thích một số thử nghiệm thuộc tính tốt hơn so với nhiễu.

1
Tôi không đổ lỗi cho CV. Vấn đề là tìm kiếm toàn diện, tôi nghĩ rằng ..
Michael R. Chernick

vâng, cũng đáng để chỉ ra rằng CV tốt hơn nhiều so với việc lựa chọn lại tính năng, vì điều đó đôi khi vẫn được sử dụng, nhưng đó là vấn đề tối ưu hóa quá mức.
Dikran Marsupial

0

Tôi nghĩ rằng đây là một quy trình hợp lệ để lựa chọn tính năng không dễ bị thừa hơn so với các quy trình lựa chọn tính năng khác. Vấn đề với thủ tục này là nó có độ phức tạp tính toán lớn và hầu như không thể sử dụng cho các tập dữ liệu thực.


2
Tôi không nghĩ rằng điều này là chính xác. Nếu độ thưa thớt đạt được thông qua chính quy hóa, ví dụ như cách tiếp cận LASSO, thì tập hợp các tập hợp tính năng có thể được tạo ra có thể nhỏ hơn nhiều so với số lượng được điều tra bởi một tìm kiếm toàn diện. Điều này có nghĩa là có ít cơ hội hơn cho việc lắp quá mức vì "không gian mô hình" bị hạn chế nhiều hơn. Tôi sẽ không đề xuất tìm kiếm toàn diện trừ khi tập dữ liệu rất lớn và số lượng tính năng rất nhỏ (tất nhiên nó sẽ nhanh chóng trở nên không thể tính toán được với số lượng tính năng).
Dikran Marsupial

Tôi đồng ý về các vấn đề Dikran nêu lên trong tìm kiếm toàn diện.
Michael R. Chernick

0

Tôi nghĩ rằng nếu bạn thực hiện lựa chọn tính năng trong mỗi lần xác thực chéo, bạn sẽ ổn. Như áp phích ở trên, bạn sẽ phù hợp với bất kỳ mô hình nào bằng cách sử dụng các tính năng được chọn thu được từ quy trình được nêu ở trên. Điều này là do tất cả dữ liệu có một số ảnh hưởng đến thói quen lựa chọn tính năng.


1
Đáng buồn thay, điều này cũng không chính xác, vấn đề phù hợp quá mức có thể phát sinh bất cứ khi nào bạn giảm thiểu một thống kê trên một mẫu dữ liệu hữu hạn. Nếu số liệu thống kê có phương sai khác không, một số mức độ phù hợp quá mức là không thể tránh khỏi nếu số liệu thống kê được giảm thiểu hoàn toàn. Nếu bạn thực hiện lựa chọn tính năng một cách độc lập trong mỗi lần, ước tính xác thực chéo kết quả là (gần như) không thiên vị, nhưng điều đó không có nghĩa là mô hình sẽ không phù hợp, chỉ là ước tính hiệu suất chiếm các hiệu ứng của hơn -fising.
Dikran Marsupial
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.