📄 lssvcoutput.m
字号:
function [Yhat,ROCarea,se] = lssvcoutput(alpha,bias,sig2,trnX,trnY, tstX, tstY,knl)
% Calculate lsSVC Output
% [Yhat,ROCarea,se] = lssvcoutput(alfa,bias,sig2,trnX, tstX, tstY,)
% Parameters: trnX - Training inputs
% tstX - Test inputs
% beta - Difference of Lagrange Multipliers
% bias - bias
% sig2 = sig^2 for RBF kernel
if nargin<8,
knl='rbf';
end,
if (nargin < 6)|(nargout>1&nargin<7) % check correct number of arguments
help svcoutput
else
n = size(trnX,1);
m = size(tstX,1);
H = zeros(m,n);
for i=1:m
u=tstX(i,:);
for j=1:n
v=trnX(j,:);
% K(i,j) = exp(-sqrt((u-v)*(u-v)')/(2*sig2))
% K(i,j)=exp(-(norm(tstX(i,:)-trnX(j,:))^2)/sig2);
% if knl=='rbf',
% H(i,j)=trnY(j)*exp(-(u-v)*(u-v)'/sig2);
% else
% H(i,j)=trnY(j)*(u*v'+1)^sig2;
% end,
switch knl,
case 'rbf',
H(i,j)=trnY(j)*RBFkernel(u,v,sqrt(sig2));
case 'lin',
H(i,j)=trnY(j)*LINkernel(u,v,sig2);
case 'pol',
H(i,j)=trnY(j)*LINkernel(u,v,sig2);
case 'cwrbf',
H(i,j)=trnY(j)*RBFaddkernel(u,v,sqrt(sig2));
case 'cwlin',
H(i,j)=trnY(j)*LINaddkernel(u,v,sig2);
case 'cwpol',
H(i,j)=trnY(j)*LINaddkernel(u,v,sig2);
otherwise
disp('Invalid kernel.'),
end
end
end
Yhat = (H*alpha +bias);
if nargout>1,
Y0=[];
Y1=[];
for i=1:length(tstY)
if sign(tstY(i))<=0,
Y0=[Y0;Yhat(i)];
else
Y1=[Y1;Yhat(i)];
end
end
[TN,TP,FP,FN,ROCarea,se]=roc_tf(Y0,Y1);
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -