Tôi có hai triển khai khác nhau ridge
trong MATLAB. Một là đơn giản
(như đã thấy trên trang hồi quy sườn của Wikipedia ), với là ma trận danh tính của các cột kích thước ( ) cột ( ) và
Tôi chỉ đơn giản gọi "sườn núi" của Matlab với
x = ridge(A, b, lambda)
Vấn đề của tôi là cả hai trả về kết quả khác nhau. (1) trả về kết quả mà tôi muốn (tôi biết điều này bằng cách so sánh kết quả với người khác) nhưng tại sao (2) không trả lại kết quả tương tự?
Ma trận của tôi rất thưa thớt, nó chứa đầy 1% 1 và 99% 0. Một số cột chứa gần như không có 1. Sự khác biệt lớn nhất dường như là hệ số cho các cột có rất ít 1 rất gần với 0 in (1), nhưng có thể khá xa so với 0 in (2)
Có ai có ý tưởng tại sao nó khác và làm thế nào tôi có thể sửa đổi cuộc gọi trong (2) để cho kết quả giống như (1) không?
ridge
ridge
(theo tài liệu MATLAB) chỉ ra rằng (như là tiêu chuẩn): Theo mặc định, b được tính sau khi định tâm và mở rộng quy mô các dự đoán có ý nghĩa 0 và độ lệch chuẩn 1. Mô hình không bao gồm số hạng không đổi và X không được chứa cột 1s. .