regrrr.m

来自「Ridge Regression RR 岭回归估计」· M 代码 · 共 40 行

M
40
字号
function [F,error] = regrRR(X,Y,q)

%   [F,error] = regrRR(X,Y,q)
%   [F,error] = regrRR(X,Y)
%
% Ridge Regression.
%
% Input parameters:
%  - X: Input data block (k x n)
%  - Y: Output data block (k x m)
%  - q: Stabiliaztion factor (optional)
%    If not given, estimated from data
% Return parameters:
%  - F: Mapping matrix, Yhat = X*F
%  - error: Prediction errors
%
% Heikki Hyotyniemi Aug. 21, 2003


F = NaN, error = NaN;
[kx,n] = size(X);
[ky,m] = size(Y);
if kx ~= ky, disp('Incompatible X and Y'); return; end

if nargin == 2   % Matching against parameter error
    S = zeros(n,1);
    F = zeros(n,m);
    for i = 1:10
        F = inv(X'*X)*X'*Y;  % Basic solution
        F = F * inv(diag(1+S));
        Yhat = X*F;
        error = Yhat - Y;
        S = diag(error'*error)/k;
    end
else   % Normal ridge regression
    F = inv(X'*X+q*eye(n))*X'*Y;
    Yhat = X*F;
    error = Yhat - Y;
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?