📄 linearr.m
字号:
%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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -