我正在应用 GP 回归来预测风电场的功率输出。我在 Matlab 中使用 GPML 工具箱。我使用 beta 可能性作为限制 GP 预测的一种方式(涡轮机具有最大功率输出,但 GP 不知道这一点并且经常高估功率输出)。这极大地改善了结果,但是当我尝试在整个数据集(非常大)上运行它时出现了我的问题,因为我需要使用内置的稀疏近似。
从文档来看,似乎支持使用带有 beta 似然性和拉普拉斯推理的 apxsparse,但是每当我运行它时,它都会失败,因为矩阵“不是正定的”有人知道为什么会这样吗?我在下面包含了我的代码;实现稀疏的代码被注释掉了,它运行良好,当你尝试包含它时,我得到了上述错误。
%% GP
% mean 0
meanfunc = [];
% setting up the covariance functions
% cov = {@covMaternard,3}; hyp.cov = log([L;sf]);
sf = mean(var(x))*5; D = width(x); L = ones(D,1);
cov = {@covSEard}; hyp.cov = log([L;sf]);
% likelihood functions
% likfunc = @likGauss; hyp.lik = log(sf);
likfunc = {@likBeta,'logit'}; phi = 4.7; hyp.lik = log(phi);
% sparse
% xu = datasample(x(:,:),100);
% cov = {'apxSparse',cov,xu};
% inference method,
inf = @infLaplace;
% inf = @infGaussLik;
infv = @(varargin) inf(varargin{:},struct('s',0.0));
% define hyper parameter as something
tic
hyp = minimize(hyp, @gp, -100, inf, meanfunc, cov, likfunc, x, y);
toc
% nlml
nlml = gp(hyp, inf, meanfunc, cov, likfunc, x, y);
% GP
[m, s2] = gp(hyp, inf, meanfunc, cov, likfunc, x, y, xs);
如果有人知道更好并且知道这不受支持,请告诉我。