📄 ctransf.m
字号:
function [nalpha,NMI,varargin]=ctransf(alpha,theta,MI,I,SIGMA)
% CTRANSF adds one constant coordinate.
% [nalpha,NMI,varargin]=ctransf(alpha,theta,MI,I,SIGMA)
%
% CTRANSF adds one constant coordinate to a training set so
% that the original task of finding arbitrary placed hyperplane
% becomes simpler. More precisely, the original task is to find
% the vector alpha and the threshold theta (determine hyperplane)
% for which holds
% alpha' * x >= theta for any x from the first class
% alpha' * x < theta for any x from the second class
%
% After adding of one constant coordinate the original task
% changes to equivalent one where the goal is to find nalpha
% (hyperplane going through origin) for which holds
% nalpha' * nx >= 0 for any nx from the first class
% nalpha' * nx < 0 for any nx from the second class
%
% Input:
% 1. If input classes are finite point sets then use syntax
% [nalpha,NX]=ctransf(alpha,theta,X,I)
%
% where
% alpha [Nx1] is a normal vector of the hyperplane in original space.
% theta [1x1] is a threshold in original space.
% X [NxM] is a matrix containing M points in N-dimensional
% feature space. So that X=[x1,x2 ...xM] and xs are
% column vectors.
% I [1xM] is a vector of class labels for each point. In this
% case possible value is 1 for first class or 2 for
% second class.
% nalpha [(N+1)x1] is transformed normal vector.
% NX [NxM] is matrix of transformed points.
%
% 2. If input classes are described by normal mixtures then use
% [nalpha,NMI,NSIGMA]=ctransf(alpha,theta,MI,I,SIGMA)
%
% where
% alpha [Nx1] is a normal vector of hyperplane in original space.
% theta [1x1] is a threshold in original space.
% MI [NxM] is a matrix containing M vectors of mean values in
% N-dimensional space. Matrix MI=[mi1,mi2,...,miM]
% contains column vectors.
% SIGMA [Nx(M*N)] is a matrix containing M covariance matrices
% so that SIGMA=[sigma1,sigma2,...sigmaM]. Individual
% covariance matrices are of dimension N-by-N.
% I [1xN] is a vector of class labels for each pair of parameters
% [mi,sigma]. In this case, possible value is 1 for the first
% class or 2 for the second class.
% NMI [(N+1)xM] is matrix of transformed vectors of mean values.
% NSIGMA [(N+1)x(M*(N+1))] is a matrix containing covariance
% matrices.
%
% See also ICTRANSF.
%
% Statistical Pattern Recognition Toolbox, Vojtech Franc, Vaclav Hlavac
% (c) Czech Technical University Prague, http://cmp.felk.cvut.cz
% Written Vojtech Franc (diploma thesis) 24.10.1999
% Modifications
% 24. 6.00 V. Hlavac, comments polished.
D=size(MI,1); % dimension
K=size(MI,2); % number of MIs and SIGMAs
% transform alpha
if sum(alpha)==0 & theta==0,
nalpha=zeros(D+1,1);
else
nalpha=[alpha;-theta];
end
NMI=[];
NSIGMA=[];
for i=1:K,
if I(i) == 1,
NMI=[NMI,[MI(:,i);1]];
if nargin >= 5,
NSIGMA=[NSIGMA,[ [SIGMA(:,(i-1)*D+1:i*D),zeros(D,1)] ; zeros(1,D+1)]];
end
elseif I(i) == 2,
NMI=[NMI,-[MI(:,i);1]];
if nargin >= 5,
NSIGMA=[NSIGMA,[ [SIGMA(:,(i-1)*D+1:i*D),zeros(D,1)] ; zeros(1,D+1)]];
end
end
end
if nargin >= 5,
varargin=NSIGMA;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -