linearr.m
来自「这是模式识别方面的电子书籍」· M 代码 · 共 58 行
M
58 行
%LINEARR Linear regression%% Y = LINEARR(X,LAMBDA,N)%% INPUT% X Dataset% LAMBDA Regularization parameter (default: no regularization)% N Order of polynomial (optional)%% OUTPUT% Y Linear (or higher order) regression%% DESCRIPTION% Perform a linear regression on dataset X, with regularization% parameter LAMBDA. When N is supplied, also higher order polynomials% are possible.%% SEE ALSO% RIDGER, TESTR, PLOTR, VANDERMONDE% Copyright: D.M.J. Tax, D.M.J.Tax@prtools.org% Faculty EWI, Delft University of Technology% P.O. Box 5031, 2600 GA Delft, The Netherlandsfunction y = linearr(x,lambda,p)if nargin<3 p = 1;endif nargin<2 lambda = [];endif nargin<1 | isempty(x) y = mapping(mfilename,{lambda,p}); y = setname(y,'Linear regression'); returnendif ~ismapping(lambda) %training [n,d] = size(x); X = +vandermondem(x,p); if isempty(lambda) beta = inv(X'*X)*X'*gettargets(x); else dimp = size(X,2); beta = inv(X'*X + lambda*eye(dimp))*X'*gettargets(x); end W.beta = beta; W.n = p; y = mapping(mfilename,'trained',W,1,d,1); y = setname(y,'Linear regression');else % evaluation w = getdata(lambda); out = vandermondem(x,w.n)*w.beta; y = setdat(x,out); end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?