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

📄 gganders2.m

📁 四种SVM工具箱的分类与回归算法别人的
💻 M
字号:
function [alpha,theta,solution,minr,t,maxerr]=...   gganders2(MI,SG,J,tmax,stopCond,t,alpha,theta)% GGANDERS2 solves Generalized Anderson's task, generalized gradient.% [alpha,theta,solution,minr,t,maxerr]=...%    gganders2(MI,SG,J,tmax,stopCond,t,alpha,theta)%% GGANDERS2 is implementation of the algorithm that uses theorem of the %   generalized gradient optimization for solving the Generalized Anderson's %   task (GAT).% %   The GAT finds a separationg hyperplane (alpha'*x = theta) between two %   classes such that found solution minimizes the probability of bad %   classification. Both classes are described in term of the conditional %   probability density functions p(x|k), where x is observation and k is %   class identifier (K in {1,2}). The p(x|k) for both the classes has normal %   distribution but its genuine parameters are not know, only finite set %   of possible parameters is known.%%   The algorithm finds such alpha, theta which maximizes criterion minR.%   There are three possible stop conditions:%     1. stopCond is [1x1]. The algorithm halts when a change of the %     criterion value in two consequantial steps is less than a prescribed %     limit stopCond, i.e.%           abs(minr(t)-minr(t-1)) < stopCond%%     2. stopCond is [1x2] = [deltaR,stopT]. The algorithm halts when during%     the last 'stopT'-th steps a change of the best solution is less than the%     prescribed limit deltaR, i.e.%           max minR(t')  -   max  minR(t')  < deltaR%         t' <= t          t' <= t-sotpT%      %     OR %     3. The algortihm halts when number of performed iterations exceeds%     prescribed limit tmax without respect to stopCond, i.e. %          t >= tmax%% Input:% (Notation: K is number of input parameters, N is dimension of feature space.)%% GGANDERS2(MI,SIGMA,J,tmax,stopCond)%   MI [NxK] contains K column vectors of mean values MI=[mi_1,mi_2...mi_K],%      where mi_i is i-th column vector N-by-1. %   SIGMA [N,(K*N)] contains K covariance matrices,%      SIGMA=[sigma_1,sigma_2,...sigma_K], where sigma_i is i-th matrix N-by-N.%   J [1xK] is vector of class labels J=[label_1,label_2,..,class_K], where%      label_i is an integer 1 or 2 according to which class the pair %      {mi_i,sigma_i} describes.%   tmax [1x1] is maximal number of steps of algorithm. Default is inf %      (it exclude this stop condition).%   stopCond [1x1] or [1x2] see comments above.%% GGANDERS2(MI,SIGMA,J,tmax,stopCond,t,alpha,theta) begins from state given by%   t [1x1] begin step number.%   alpha [Nx1], theta [1x1] are state variables of the algorithm.%% Returns:%   alpha [Nx1] is normal vector of found separating hyperplane.%   theta [1x1] is threshold of separating hyperplane (alpha'*x=theta).%   solution [1x1] is equal to -1 if solution does not exist,%      is equal to 0 if solution is not found,%      is equal to 1 if is found.%   minr [1x1] is radius of the smallest ellipsoid correseponding to the %      quality of found solution.%   t [1x1] is number of steps the algorithm performed.%   maxerr [1x1] is probability of bad classification.%% See also OANDERS, EANDERS, GANDERS, GANDERS2%% Statistical Pattern Recognition Toolbox, Vojtech Franc, Vaclav Hlavac% (c) Czech Technical University Prague, http://cmp.felk.cvut.cz% Written Vojtech Franc (diploma thesis) 04.11.1999, 6.5.2000% Modifications% 24. 6.00 V. Hlavac, comments polished.% 20.10.00 V.Franc% default arguments settingif nargin < 3,  error('Not enough input arguments.');endif nargin < 4,  tmax=inf;end%%% Gets stop conditionif nargin < 5,   stopCond = 0;endif length(stopCond)==2,  stopT=stopCond(2);else  stopT=1;;enddeltaR=stopCond(1);%%% Starts from the prescibed stateif nargin < 6,   t=0;end% goes to homogenous coordinatesif nargin < 8,   [alpha,MI,SG]=ctransf(0,0,MI,J,SG);else   [alpha,MI,SG]=ctransf(alpha,theta,MI,J,SG);end%%%% get dimension N and number of distributions KN=size(MI,1);K=size(MI,2);% implicit valuesolution=0;if t==0,   % First step   [alpha,alphaexists]=csvm(MI);   if alphaexists==0,      % Solution does not exist.      alpha = zeros(N,1); minr=0; theta=0;      solution=-1;      return;   else      tmax=tmax-1;      t=1;   endend% computes current quality of the solution[minrs,minri]=min( (alpha'*MI)./sqrt( reshape(alpha'*SG,N,K)'*alpha )' );minr=minrs(1);oldminr=minr;     % solution in the last step bestminr=minr;    % the best solution so far, valuebestalpha=alpha;  %  --//-- ,optimized variablequeueBestMinR=[];  % queue of the best solutions, stopT steps backwardt0=0;   % counter of performed iterations in this call of the function% t, is the whole number of iterations, i.e. t(end_fce)=t(begin_fce)+t0;%%% Main algorithm cycle
 %%%%%%%%%while solution==0 & tmax > 0,   tmax = tmax-1;   % Find contact point x0.   % computes minr   [minrs,minri]=min( (alpha'*MI)./sqrt( reshape(alpha'*SG,N,K)'*alpha )' );   minr=minrs(1);   i=minri(1);   % compute x0   x0=MI(:,i)-(minr/sqrt(alpha'*SG(:,(i-1)*N+1:i*N)*alpha))*SG(:,(i-1)*N+1:i*N)*alpha;   % compute new alpha   alpha=alpha+x0/norm(x0);   oldminr=minr;   % stores the beast solution so far   if bestminr<=minr,      bestalpha=alpha;      bestminr=minr;      bestt=t;   end   t=t+1;   t0=t0+1;   %%%% Stop criterion %%%%%%%%%%%%%%%%   if t0 > stopT,      if (bestminr-queueBestMinR(1)) < deltaR,        solution = 1;        t=t-1;      end      % a queue of the best solutions      queueBestMinR=[queueBestMinR(2:end),bestminr];     else      queueBestMinR=[queueBestMinR,bestminr];   end   end%%%% Conclution of the algorithm %%%%%% gets the best solution so faralpha=bestalpha;minr=bestminr;% returns back to the origin space [alpha,theta]=ictransf(alpha);% computes probability of bad classificationmaxerr=1-cdf('norm',minr,0,1);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -