Triển khai Lasso không âm trong R


13

Tôi đang tìm kiếm một số nguồn mở hoặc một thư viện hiện có mà tôi có thể sử dụng. Theo như tôi nói thì gói glmnet không dễ mở rộng để bao quát trường hợp không âm. Tôi có thể sai, Bất kỳ ai với bất kỳ ý tưởng nào được đánh giá cao.

Bởi không âm tôi có nghĩa là tất cả các hệ số bị ràng buộc là dương (> 0).


1
Xin lỗi tôi đã hỏi, nhưng chính xác ý bạn là gì với Lasso không âm? Để giữ tất cả các hệ số> 0 hay chỉ cho phép dự đoán tích cực? Googling đã không khai sáng cho tôi nhưng nó có vẻ như là điều mà tôi muốn biết.
Backlin

1
Xin lỗi vì đã đóng câu hỏi của bạn, nhưng nó được hỏi và trả lời tốt hơn tại www.crossvalidated.com Tôi đã gắn cờ câu hỏi để di chuyển, vì vậy các mod sẽ sớm xử lý nó. Điều này nói, xin vui lòng làm rõ câu hỏi của bạn và giải thích chính xác những gì bạn muốn. Chuyên gia về Lasso trong nhóm nghiên cứu của chúng tôi không thể hiểu được bạn đang nhắm đến điều gì ...
Joris Meys

Xin lỗi vì điều đó. Không âm có nghĩa là tất cả các hệ số đều dương. Tôi đã thử sử dụng gói glmnet nhưng điều đó chỉ giải quyết cho trường hợp chung.
gbh.

Câu trả lời:


8

Trong glmnetđó có tùy chọn

lower.limits=0

mà bạn có thể sử dụng và đó sẽ là cách thích hợp để thực thi các ràng buộc tích cực trên các hệ số được trang bị và nếu bạn đặt tham số alphathành 1, bạn sẽ phù hợp với LASSO. Kết hợp với đối số, upper.limitsbạn cũng có thể chỉ định các ràng buộc hộp. Các glmnetgói cũng là nhanh hơn nhiều so với penalizedgói, đề xuất trong một câu trả lời ở đây.

Một Rcppphiên bản glmnetcó thể phù hợp với lưới lasso & thun có hỗ trợ cho tính tích cực và các ràng buộc hộp cũng đang được chuẩn bị và có sẵn để thử nghiệm tại https://github.com/jaredhuling/ordinis


7

Xem gói bị phạt cho một lựa chọn. Các Vignette (PDF) mà đi kèm với các gói có một ví dụ về điều này trong phần 3.9.

Về cơ bản thiết lập đối số positive = TRUEtrong lệnh gọi penalized()hàm.


4

Điều này và bài viết này chứng minh rằng trong một số điều kiện, ngưỡng mạnh của giải pháp bình phương tối thiểu không âm có thể thực hiện tương đương hoặc tốt hơn so với chính quy L1 (LASSO), về mặt hiệu suất. Một ví dụ là nếu ma trận thiết kế của bạn chỉ có các mục không âm, thường là như vậy.

Đáng để kiểm tra, vì NNLS được hỗ trợ rất rộng rãi và cũng sẽ dễ dàng hơn / nhanh hơn để giải quyết.

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.