📄 fldqp.html
字号:
<html><head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1"> <title>fldqp.m</title><link rel="stylesheet" type="text/css" href="../../../m-syntax.css"></head><body><code><span class=defun_kw>function</span> <span class=defun_out>model </span>= <span class=defun_name>fldqp</span>(<span class=defun_in>data</span>)<br><span class=h1>% FLDQP Fisher Linear Discriminat using Quadratic Programming.</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Synopsis:</span></span><br><span class=help>% model = fldqp( data )</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Description:</span></span><br><span class=help>% This function computes the binary linear classifier based</span><br><span class=help>% on the Fisher Linear Discriminant (FLD) using the Quadratic</span><br><span class=help>% Programming (quadprog) optimization. The inputs are</span><br><span class=help>% binary labeled training vectors. The parameter vector W</span><br><span class=help>% of the linear classifier</span><br><span class=help>% q(x) = 1 for W'*x + b >= 0</span><br><span class=help>% = 2 for W'*x + b < 0</span><br><span class=help>% </span><br><span class=help>% is computed to maximize class separability criterion.</span><br><span class=help>% The bias b is determined to lie between means of training</span><br><span class=help>% data projected onto direction W. </span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Input:</span></span><br><span class=help>% data [struct] Binary labeled training vectors.</span><br><span class=help>% .X [dim x num_data] Training vectors.</span><br><span class=help>% .y [1 x num_data] Labels (1 or 2).</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Output:</span></span><br><span class=help>% model [struct] Binary linear classifier:</span><br><span class=help>% .W [dim x 1] Parameter vector the linear classifier.</span><br><span class=help>% .b [1x1] Bias of the linear classifier.</span><br><span class=help>% .separab [1x1] Meassure of class separability.</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Example:</span></span><br><span class=help>% trn = load('riply_trn');</span><br><span class=help>% tst = load('riply_tst');</span><br><span class=help>% model = fldqp( trn );</span><br><span class=help>% ypred = linclass( tst.X, model);</span><br><span class=help>% cerror(ypred, tst.y)</span><br><span class=help>% figure; ppatterns(trn); pline(model);</span><br><span class=help>%</span><br><span class=help>% See also </span><br><span class=help>% FLD, LINCLASS.</span><br><span class=help>%</span><br><hr><span class=help1>% <span class=help1_field>About:</span> Statistical Pattern Recognition Toolbox</span><br><span class=help1>% (C) 1999-2003, Written by Vojtech Franc and Vaclav Hlavac</span><br><span class=help1>% <a href="http://www.cvut.cz">Czech Technical University Prague</a></span><br><span class=help1>% <a href="http://www.feld.cvut.cz">Faculty of Electrical Engineering</a></span><br><span class=help1>% <a href="http://cmp.felk.cvut.cz">Center for Machine Perception</a></span><br><br><span class=help1>% <span class=help1_field>Modifications:</span></span><br><span class=help1>% 21-may-2004, VF</span><br><span class=help1>% 1-may-2004, VF</span><br><span class=help1>% 30-apr-2004, VF</span><br><span class=help1>% 24-Feb-2003, VF</span><br><span class=help1>% 1-Feb-2003, VF</span><br><br><hr><span class=comment>% inputs</span><br><span class=comment>%-------------------------------</span><br>[dim,num_data ] = size(data.X );<br><br><span class=comment>% compute means and scatter matrix</span><br><span class=comment>%-------------------------------</span><br>inx1 = find( data.y == 1);<br>inx2 = find( data.y == 2);<br>n1 = length(inx1);<br>n2 = length(inx2);<br><br>m1 = mean(data.X(:,inx1),2);<br>m2 = mean(data.X(:,inx2),2);<br><br>S1 = (data.X(:,inx1)-m1*ones(1,n1))*(data.X(:,inx1)-m1*ones(1,n1))';<br>S2 = (data.X(:,inx2)-m2*ones(1,n2))*(data.X(:,inx2)-m2*ones(1,n2))';<br>Sw = S1 + S2;<br><br><span class=comment>% set params for QP</span><br><span class=comment>%------------------------</span><br>f=zeros(dim,1);<br>A=-(m1-m2)';<br>b=-2;<br><br>[W,rinv]=quadprog(Sw,f,[],[],A,b,...<br> [],[],[],optimset(<span class=quotes>'Display'</span>,<span class=quotes>'off'</span>));<br><br>proj_m1 = W'*m1;<br>proj_m2 = W'*m2;<br><br>model.W = W;<br>model.b = -0.5*(proj_m1+proj_m2);<br>model.separab = (proj_m1-proj_m2)^2/(W'*Sw*W);<br>model.fun = <span class=quotes>'linclass'</span>;<br><br><span class=jump>return</span>;<br><br></code>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -