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

📄 perceptr.m

📁 四种SVM工具箱的分类与回归算法别人的
💻 M
字号:
function [alpha,theta,solution,t]=perceptr(X,J,tmax,t,alpha,theta)% PERCEPTR Perceptron learning rule searching for decision hyperplane. % [alpha,theta,solution,t]=perceptr(X,J,tmax,t,alpha,theta)%% PERCEPTR is implementation of Perceptron learning rule. This%  algorithm finds vector alpha and threshold theta which solve%  following task%          alpha' * x >= theta, for x=X(:,i), J(i)=1 (first class)%          alpha' * x < theta,  for x=X(:,i), J(i)=2 (second class)%%  Found alpha and theta determine decision hyperplane in%  the D-dimensional feature space.%%  Perceptron algorithm works iteratively and if input classes%  are linearly separable then it stops in finite number of steps.%  This implementation allows to limit maximal number of steps and%  allows to start algorithm from defined state determined by %  given alpha and theta.%%  Input%   X [DxM] contains M training points in the D-dimensional feature %      space, i.e. X=[x1,x2,..XM] where xi is i-th column vectors.%   J [1xM] contains class labels of the points in X. A class label %      has to be 1 for the first class or 2 for the second class.%   tmax [1x1] 1. if is integer tmax > 0 then it determines a maximal %      number of algorithm steps, i.e. if the solution is not found %      until tmax-th step the algorithm will exit and set solution = 0.%      2. if tmax==-1, then the algorithm only returns, in the variable%      alpha, badly classified point which would have been used in%      the adaptation step but the adaptation is not performed.%   t [1x1], alpha [Dx1], theta [1x1] if these arguments enter function%      then the algorithm begins from the state which they determine.%%  Output%   alpha [Dx1] found normal vector of the hyperplane or, if tmax==-1,%      badly classified point.%   theta [1x1] found threshold of the hyperplane.%   solution [1x1], 1 ... solution is found,%                   0 ... solution is not found.%   t [1x1] step number where the algorithm stoped in.%% See also KOZINEC, EKOZINEC, LINSVM.%% Statistical Pattern Recognition Toolbox, Vojtech Franc, Vaclav Hlavac% (c) Czech Technical University Prague, http://cmp.felk.cvut.cz% Written Vojtech Franc (diploma thesis) 01.11.1999, 13.4.2000% Modifications% 24. 6.00 V. Hlavac, comments polished.% 15-dec-2000, texts, returns bad point% Process input arguments.if nargin < 3   tmax=inf;endif nargin < 4,   t=0;   alpha=0;   theta=0;end % Transform original feature space into the homogenous (theta=0)% coordinates.[alpha,X]=ctransf(alpha,theta,X,J);N=size(X,1);            % dimensionK=size(X,2);            % number of training points% Step 0.if t==0,   alpha=zeros(N,1);   theta=0;   t=1;   tmax=tmax-1;end% It returns only the first badly classified point which % would have been used for updating solution.% ----------------------------------------------------if tmax == -1,   % Search for any  x from X that alpha*x <= 0   for i=1:K,      % get one x from set X      x=X(:,i);      if alpha'*x <= 0,        if J(i)==1,          alpha = x(1:(end-1));        else          alpha = -x(1:(end-1));        end                solution = 0;        return;      end    end % for i=1:K,      solution=1;   return;else% Iterate until solution is not found or% number of steps exceeds given limit tmax.% -------------------------------------------------        solution = 0;   while solution == 0 & tmax > 0,      tmax = tmax-1;            % It's apriory supposed that the solution is found.      solution = 1;      % Search for any  x from X that alpha*x <= 0      for i=1:K,         % get one x from set X         x=X(:,i);         % check x         if alpha'*x <= 0,            % Adjust alpha            alpha=alpha+x;            % Increase step number            t=t+1;            solution = 0;            break;         end % if      end % for i=1:K,   end % while solution ==0, ...end% Transform the found solution from the homogenous coordinates% into original space.[alpha,theta]=ictransf(alpha);

⌨️ 快捷键说明

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