📄 lssvcmodoutb2_test.m
字号:
function [varzp, varzn, z] = lssvcmodoutb2_test(Xval, lssvcB)
% function [varzp, varzn, z] = lssvcmodoutb2_test(Xval, lssvcB)
% Input
% Xval: test input data matrix
% lssvcB: lssvcBay model
% Output
% varzp: sample specific variance associated to + class label
% varzn: sample specific variance associated to - class label
% z: latent output for the test sample
%gam=zeta/muu;
kerneltype=lssvcB.kerneltype;
Xtrain=lssvcB.Xtrain;
Ytrain=lssvcB.Ytrain;
sig2=lssvcB.sig2;
alpha=lssvcB.alpha;
b=lssvcB.b;
%Lxm=lssvcB.Lxm;
mul_n=lssvcB.mul_n;
Mpluskernel=lssvcB.Mpluskernel;
Mminkernel=lssvcB.Mminkernel;
muu=lssvcB.muu;
Diagmatrix=lssvcB.Diagmatrix;
switch kerneltype,
case 'rbf',
knl=1;
nlsig=4; sigs=[];
sig_opt=1; gam_opt=1;
gebr_kernel='RBFkernel';
case 'lin',
knl=2; gebr_kernel='LINkernel';
case 'pol',
knl=2; gebr_kernel='LINkernel';
case 'cwrbf',
knl=-1; gebr_kernel='RBFaddkernel';
case 'cwlin'
knl=-2; gebr_kernel='LINaddkernel';
case 'cwpol',
knl=-2; gebr_kernel='LINaddkernel';
end,
% if kerneltype == 'rbf'
% gebr_kernel = 'RBFkernel';
% else
% gebr_kernel = 'LINkernel';
% end
sigm=sqrt(sig2);
[Ysimval] = lssvcoutput(alpha,b,sig2, Xtrain,Ytrain,Xval,[],kerneltype);
z = Ysimval;
Mplusindex = find(Ytrain == 1); Mminindex = find(Ytrain == -1);
Nplus = length(Mplusindex); Nmin = length(Mminindex);
%%%%%%%%%%%%%%%%%%%%%%%%
%%% Bereken de variantie
%%%%%%%%%%%%%%%%%%%%%%%%
% initialisatie
%--------------
Ntr= length(Ytrain);
Nval = length(Ysimval);
roMAP = zeros(Nval,1);
varrhoM = zeros(Nval,1);
varrhoP = zeros(Nval,1);
Py_een = zeros(Nval,1);
Py_mineen = zeros(Nval,1);
mul_n=lssvcB.mul_n;
Mpluskernel=lssvcB.Mpluskernel;
Mminkernel=lssvcB.Mminkernel;
Lmplus=lssvcB.Lmplus;
Lmmin=lssvcB.Lmmin;
muu=lssvcB.muu;
Diagmatrix=lssvcB.Diagmatrix;
Ts = eye(Ntr) - 1/Ntr*ones(Ntr);
varzp = zeros(Nval,1); varzn = zeros(Nval,1);
for i = 1:Nval,
theta = zeros(1, Ntr);
for j = 1:Ntr,
theta(j) = eval([gebr_kernel,'(Xval(i,:),Xtrain(j,:),sigm)']);
end
Lpartp = (theta - Mpluskernel)*Ts*mul_n;
Lpartn = (theta - Mminkernel)*Ts*mul_n;
Kxx = eval([gebr_kernel,'(Xval(i,:),Xval(i,:),sigm)']);
Lxm = Kxx-2*sum(theta(Mplusindex))/Nplus+Lmplus;
Lxn = Kxx-2*sum(theta(Mminindex))/Nmin+Lmmin;
varzp(i) = Lxm/muu - Lpartp.^2*Diagmatrix;
varzn(i) = Lxn/muu - Lpartn.^2*Diagmatrix;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -