Files
2026-07-13 13:30:25 +08:00

31 lines
711 B
Matlab
Executable File

function model = knReg(X, t, lambda, kn)
% Gaussian process (kernel) regression
% Input:
% X: d x n data
% t: 1 x n response
% lambda: regularization parameter
% Output:
% model: trained model structure
% Written by Mo Chen (sth4nth@gmail.com).
if nargin < 4
kn = @knGauss;
end
if nargin < 3
lambda = 1e-2;
end
K = knCenter(kn,X);
tbar = mean(t);
U = chol(K+lambda*eye(size(X,2))); % 6.62
a = U\(U'\(t(:)-tbar)); % 6.68
model.kn = kn;
model.a = a;
model.X = X;
model.tbar = tbar;
%% for probability prediction
y = a'*K+tbar;
beta = 1/mean((t-y).^2); % 3.21
alpha = lambda*beta; % lambda=a/b P.153 3.55
model.alpha = alpha;
model.beta = beta;
model.U = U;