LARS vs phối hợp gốc cho Lasso


13

Những ưu và nhược điểm của việc sử dụng LARS [1] so với sử dụng gốc tọa độ để phù hợp với hồi quy tuyến tính chính quy L1?

Tôi chủ yếu quan tâm đến các khía cạnh hiệu suất (vấn đề của tôi có xu hướng có Nhàng trăm ngàn và p<20.) Tuy nhiên, bất kỳ hiểu biết nào khác cũng sẽ được đánh giá cao.

chỉnh sửa: Vì tôi đã đăng câu hỏi, chl đã vui lòng chỉ ra một bài báo [2] của Friedman và cộng sự nơi việc điều phối gốc được hiển thị là nhanh hơn đáng kể so với các phương pháp khác. Nếu đó là trường hợp, tôi có nên đơn giản là quên đi LARS để ủng hộ việc hạ xuống không?

[1] Efron, Bradley; Hê-bơ-rơ, Trevor; Johnstone, Iain và Tibshirani, Robert (2004). "Hồi quy góc nhỏ nhất". Biên niên sử thống kê 32 (2): tr. 4044499.
[2] Jerome H. Friedman, Trevor Hastie, Rob Tibshirani, "Đường dẫn chính quy cho các mô hình tuyến tính tổng quát thông qua việc điều phối gốc", Tạp chí phần mềm thống kê, Tập. 33, Số 1, Tháng 2 năm 2010.

Câu trả lời:


13

Trong scikit-learn, việc triển khai Lasso có gốc tọa độ có xu hướng nhanh hơn so với triển khai LARS của chúng tôi mặc dù đối với p nhỏ (như trong trường hợp của bạn) chúng tương đương nhau (LARS thậm chí có thể nhanh hơn một chút với các tối ưu hóa mới nhất có sẵn trong chủ repo). Hơn nữa, phối hợp gốc cho phép thực hiện hiệu quả các vấn đề thường xuyên lưới đàn hồi. Đây không phải là trường hợp của LARS (chỉ giải quyết vấn đề bị phạt Lasso, còn gọi là L1).

Hình phạt đàn hồi có xu hướng mang lại sự khái quát hóa tốt hơn Lasso (gần với giải pháp hồi quy sườn núi) trong khi vẫn giữ các tính năng tạo ra sự thưa thớt tốt đẹp của Lasso (lựa chọn tính năng được giám sát).

Đối với N lớn (và p lớn, thưa thớt hoặc không), bạn cũng có thể đưa ra một độ dốc dốc ngẫu nhiên (với L1 hoặc hình phạt mạng đàn hồi) thử (cũng được thực hiện trong scikit-learn).

Chỉnh sửa : đây là một số điểm chuẩn so sánh LassoLARS và việc triển khai gốc tọa độ trong scikit-learn


(+1) @ogrisel Cảm ơn rất nhiều! Vì cuối cùng tôi có thể phải tự viết mã này (cần nó trong Java và chưa thấy bất kỳ triển khai Java nguồn mở nào), bạn có thể nói thuật toán nào dễ thực hiện hơn?
NPE

1
cả hai tọa độ gốc và SGD đều dễ thực hiện (kiểm tra trang web của Leon Bottou để biết phần giới thiệu hay về SGD). LARS có lẽ là khó khăn hơn để có được đúng.
ogrisel

Tuyệt vời, cảm ơn! Tôi sẽ kiểm tra trang web của Léon Bottou.
NPE

@ogrisel (+1) Rất vui được gặp bạn ở đó.
chl

2
@aix Tôi đã chỉnh sửa câu trả lời của mình để thêm một số điểm chuẩn về các triển khai hiện tại trong scikit-learn. Ngoài ra, hãy kiểm tra phiên bản java của liblinear trước khi triển khai hệ tọa độ của riêng bạn vì nó có thể đủ tốt cho bạn (mặc dù bạn không thể có cả reg L1 và L2 cùng một lúc).
ogrisel
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.