Đây đã là một câu hỏi khá cũ nhưng tôi cảm thấy rằng trong thời gian đó, hầu hết các câu trả lời ở đây khá lỗi thời (và câu hỏi được kiểm tra là câu trả lời đúng là imho hoàn toàn sai).
Đầu tiên, về mặt nhận được hiệu suất dự đoán tốt, không phải sự thật là LASSO luôn tốt hơn từng bước. Bài viết "So sánh mở rộng về lựa chọn tập hợp con tốt nhất, lựa chọn chuyển tiếp theo chiều dọc và Lasso" của Hastie et al (2017) cung cấp một so sánh rộng rãi về phía trước từng bước, LASSO và một số biến thể LASSO như LASSO thoải mái cũng như tập hợp con tốt nhất và chúng cho thấy rằng từng bước tốt hơn LASSO. Một biến thể của LASSO mặc dù - LASSO thoải mái - là biến thể tạo ra độ chính xác dự đoán mô hình cao nhất trong phạm vi rộng nhất của tình huống. Kết luận về cái nào là tốt nhất phụ thuộc rất nhiều vào những gì bạn cho là tốt nhất, ví dụ: liệu đây có phải là độ chính xác dự đoán cao nhất hay chọn ít biến số dương nhất.
Có cả một sở thú về phương pháp học tập thưa thớt, hầu hết trong số đó tốt hơn LASSO. Ví dụ: có Meinhausen LASSO thoải mái , LASSO và SCAD và MCP thích ứng với hồi quy được thực hiện trong ncvreg
gói, tất cả đều có độ lệch ít hơn LASSO tiêu chuẩn và do đó có thể thích hợp hơn. Hơn nữa, nếu bạn quan tâm đến giải pháp thưa thớt tuyệt đối với hiệu suất dự đoán tốt nhất thì hồi quy bị phạt L0 (hay còn gọi là tập hợp con tốt nhất, tức là dựa trên việc xử phạt nr của các hệ số khác 0 so với tổng giá trị tuyệt đối của các hệ số trong LASSO) tốt hơn LASSO, xem ví dụ l0ara
gói gần đúng với GLM bị phạt L0 bằng cách sử dụng quy trình sườn thích ứng lặpvà không giống như LASSO cũng hoạt động rất tốt với các biến cộng tuyến cao và L0Learn
gói có thể phù hợp với các mô hình hồi quy bị phạt L0 bằng cách sử dụng tọa độ gốc , có khả năng kết hợp với hình phạt L2 để chuẩn hóa cộng tuyến.
Vì vậy, để trở lại câu hỏi ban đầu của bạn: tại sao không sử dụng LASSO cho lựa chọn biến? :
(1) bởi vì các hệ số sẽ bị sai lệch cao, được cải thiện trong hồi quy bị phạt LASSO, MCP và SCAD thoải mái, và giải quyết hoàn toàn trong hồi quy bị phạt L0 (có thuộc tính orory đầy đủ, nghĩa là nó có thể chọn ra cả hai biến nhân quả và trả về hệ số không thiên vị, cũng cho các trường hợp p> n)
(2) bởi vì nó có xu hướng tạo ra nhiều dương tính giả hơn so với hồi quy bị phạt L0 (trong các thử nghiệm của tôi l0ara
thực hiện tốt nhất sau đó, tức là sườn thích ứng lặp, theo sau L0Learn
)
(3) bởi vì nó không thể xử lý tốt các biến cộng tuyến (về cơ bản nó sẽ chỉ chọn ngẫu nhiên một trong các biến cộng tuyến) - sườn thích ứng lặp / l0ara
và các hình phạt L0L2 trong L0Learn
việc xử lý điều đó tốt hơn nhiều.
Tất nhiên, nói chung, bạn vẫn sẽ phải sử dụng xác thực chéo để điều chỉnh (các) tham số chính quy của mình để có hiệu suất dự đoán tối ưu, nhưng đó không phải là vấn đề. Và bạn thậm chí có thể thực hiện suy luận chiều cao về các tham số của mình và tính toán khoảng tin cậy 95% cho các hệ số của bạn nếu bạn muốn thông qua bootstrapping không tính toán (thậm chí có tính đến sự không chắc chắn trong việc lựa chọn chính quy tối ưu nếu bạn cũng xác thực chéo trên mỗi tập dữ liệu được khởi động , mặc dù điều đó trở nên khá chậm sau đó).
LASSO tính toán không chậm hơn để phù hợp hơn so với cách tiếp cận btw, chắc chắn không phải nếu một người sử dụng mã được tối ưu hóa cao sử dụng khởi động ấm để tối ưu hóa chính quy LASSO của bạn (bạn có thể so sánh bản thân bằng cách sử dụng fs
lệnh để chuyển tiếp từng bước vàlasso
cho LASSO trong bestsubset
gói). Thực tế là các cách tiếp cận từng bước vẫn còn phổ biến có lẽ phải làm với niềm tin sai lầm của nhiều người rằng sau đó người ta có thể giữ mô hình cuối cùng của bạn và báo cáo giá trị p liên quan - thực tế không phải là điều đúng, vì điều này không phải là điều đúng. tính đến sự không chắc chắn được giới thiệu bởi lựa chọn mô hình của bạn, dẫn đến cách giá trị p quá lạc quan.
Hi vọng điêu nay co ich?