⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lssvcmodoutb2_test.m

📁 The goal of SPID is to provide the user with tools capable to simulate, preprocess, process and clas
💻 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 + -