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

📄 fldqp.m

📁 很好的matlab模式识别工具箱
💻 M
字号:
function model = fldqp(data)% FLDQP Fisher Linear Discriminat using Quadratic Programming.%% Synopsis:%  model = fldqp( data )%% Description:%  This function computes the binary linear classifier based%  on the Fisher Linear Discriminant (FLD) using the Quadratic%  Programming (quadprog) optimization. The inputs are%  binary labeled training vectors. The parameter vector W%  of the linear classifier%    q(x) = 1  for W'*x + b >= 0%         = 2  for W'*x + b < 0%  %  is computed to maximize class separability criterion.%  The bias b is determined to lie between means of training%  data projected onto direction W. %% Input:%  data [struct] Binary labeled training vectors.%   .X [dim x num_data] Training vectors.%   .y [1 x num_data] Labels (1 or 2).%% Output:%  model [struct] Binary linear classifier:%   .W [dim x 1] Parameter vector the linear classifier.%   .b [1x1] Bias of the linear classifier.%   .separab [1x1] Meassure of class separability.%% Example:%  trn = load('riply_trn');%  tst = load('riply_tst');%  model = fldqp( trn );%  ypred = linclass( tst.X, model);%  cerror(ypred, tst.y)%  figure; ppatterns(trn); pline(model);%% See also %  FLD, LINCLASS.%% About: Statistical Pattern Recognition Toolbox% (C) 1999-2003, Written by Vojtech Franc and Vaclav Hlavac% <a href="http://www.cvut.cz">Czech Technical University Prague</a>% <a href="http://www.feld.cvut.cz">Faculty of Electrical Engineering</a>% <a href="http://cmp.felk.cvut.cz">Center for Machine Perception</a>% Modifications:% 21-may-2004, VF% 1-may-2004, VF% 30-apr-2004, VF% 24-Feb-2003, VF% 1-Feb-2003, VF% inputs%-------------------------------[dim,num_data ] = size(data.X );% compute means and scatter matrix%-------------------------------inx1 = find( data.y == 1);inx2 = find( data.y == 2);n1 = length(inx1);n2 = length(inx2);m1 = mean(data.X(:,inx1),2);m2 = mean(data.X(:,inx2),2);S1 = (data.X(:,inx1)-m1*ones(1,n1))*(data.X(:,inx1)-m1*ones(1,n1))';S2 = (data.X(:,inx2)-m2*ones(1,n2))*(data.X(:,inx2)-m2*ones(1,n2))';Sw = S1 + S2;% set params for QP%------------------------f=zeros(dim,1);A=-(m1-m2)';b=-2;[W,rinv]=quadprog(Sw,f,[],[],A,b,...       [],[],[],optimset('Display','off'));proj_m1 = W'*m1;proj_m2 = W'*m2;model.W = W;model.b = -0.5*(proj_m1+proj_m2);model.separab = (proj_m1-proj_m2)^2/(W'*Sw*W);model.fun = 'linclass';return;

⌨️ 快捷键说明

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