?? greedyappx.html
字號(hào):
<html><head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1"> <title>greedyappx.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>[sel_inx,Alpha,Z,kercnt,MsErr,MaxErr]</span>=...<br> greedyappx(X,ker,arg,m,p,mserr,maxerr,verb) <br><span class=h1>% GREEDYAPPX Kernel greedy data approximation.</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Synopsis:</span></span><br><span class=help>% [inx,Alpha,kercnt,mserr,maxerr]=...</span><br><span class=help>% greedyappx(X,ker,arg,m,m2,mserr,maxerr,verb)</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Description:</span></span><br><span class=help>% This function aims to select a subset S of input data X such</span><br><span class=help>% that the feature space representation of X can be well </span><br><span class=help>% approximated by feature space representation of S.</span><br><span class=help>% The feature represenation of data is by the use of</span><br><span class=help>% specified kernel function.</span><br><span class=help>%</span><br><span class=help>% The greedy algortihm is used to seletect the subset S. </span><br><span class=help>% The algorithm iterates until on of the following stopping </span><br><span class=help>% conditions is achieved:</span><br><span class=help>% - number of vectors of S achieves m </span><br><span class=help>% - maximal reconstruction error is less than maxerr </span><br><span class=help>% - mean squared sum of reconstruction errors less than mserr. </span><br><span class=help>% </span><br><span class=help>% <span class=help_field>Input:</span></span><br><span class=help>% X [dim x num_data] Input data.</span><br><span class=help>% ker [string] Kernel identifier. See 'help kernel' for more info.</span><br><span class=help>% arg [...] Argument of selected kernel.</span><br><span class=help>% m [1x1] Maximal number of vector used for approximation.</span><br><span class=help>% p [1x1] Depth of search for the best basis vector.</span><br><span class=help>% mserr [1x1] Desired mean sum of squared reconstruction errors.</span><br><span class=help>% maxerr [1x1] Desired maximal reconstruction error.</span><br><span class=help>% verb [1x1] If 1 then infor about process is displayed.</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Output:</span></span><br><span class=help>% inx [1 x n] Indices of selected vector, i.e., S = X(:,inx).</span><br><span class=help>% Alpha [m x m] Koefficient of the kernel projection of data on the</span><br><span class=help>% found base vectors, i.e., z = Alpha*kernel(S,x,ker,arg).</span><br><span class=help>% Z [m x num_data] Training data projected on the found base vectors.</span><br><span class=help>% kercnt [1x1] Number of used kernel evaluations.</span><br><span class=help>% MsErr [1 x m] Sum of squared reconstruction errors for corresponding</span><br><span class=help>% number of base vectors.</span><br><span class=help>% MaxErr [1 x m] Maximal squared reconstruction error for crresponding </span><br><span class=help>%</span><br><span class=help>% See also </span><br><span class=help>% GREEDYKPCA.</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>% 10-dec-2004, VF, tmp(find(Errors<=0)) = -inf; added to evoid num errors.</span><br><span class=help1>% 5-may-2004, VF</span><br><span class=help1>% 13-mar-2004, VF</span><br><span class=help1>% 10-mar-2004, VF</span><br><span class=help1>% 9-mar-2004, addopted from greedyappx</span><br><br><hr><span class=keyword>if</span> <span class=stack>nargin</span> < 5, mserr=1e-6; <span class=keyword>end</span><br><span class=keyword>if</span> <span class=stack>nargin</span> < 6, maxerr=1e-6; <span class=keyword>end</span><br><span class=keyword>if</span> <span class=stack>nargin</span> < 7, verb=0; <span class=keyword>end</span><br><br>[dim,num_data]=size(X);<br><br><span class=keyword>if</span> verb, <br> <span class=io>fprintf</span>(<span class=quotes>'Greedy data approximation.\n'</span>);<br> <span class=io>fprintf</span>(<span class=quotes>'Setting: ker=%s, arg=%f, m=%d, eps=%f\n'</span>, ker,arg,m,maxerr); <br><span class=keyword>end</span><br><br>kercnt=0;<br>Errors = diagker(X,ker,arg)'; kercnt = kercnt+num_data;<br>Z = zeros(m,num_data);<br><br>MsErr = [];<br>MaxErr = [];<br>Alpha=zeros(m,m);<br>SV = zeros(dim,m);<br>sel_inx=[];<br>work_inx = [1:num_data];<br><br><span class=keyword>for</span> i=1:m,<br><br> <span class=comment>% call greedyappx2</span><br> <span class=keyword>if</span> i == 1,<br> [tmp_sel_inx,tmp_Alpha,tmp_Z,tmp_kercnt,tmp_MsErr,tmp_MaxErr]=...<br> ordinary_greedyappx(X,ker,arg,p,0,1e-12,verb);<br><span class=comment>% [tmp_sel_inx,tmp_Alpha,tmp_Z,tmp_kercnt,tmp_MsErr,tmp_MaxErr]=...</span><br><span class=comment>% ordinary_greedyappx(X,ker,arg,p,mserr,maxerr,verb);</span><br> kercnt = kercnt+tmp_kercnt;<br> <span class=keyword>else</span><br> init_model.Alpha = Alpha(1:i-1,1:i-1);<br> init_model.Z = Z(1:i-1,:);<br> init_model.Errors = Errors;<br><br> [tmp_sel_inx,tmp_Alpha,tmp_Z,tmp_kercnt,tmp_MsErr,tmp_MaxErr]=...<br> ordinary_greedyappx(X,ker,arg,p,0,1e-12,verb,init_model);<br><span class=comment>% [tmp_sel_inx,tmp_Alpha,tmp_Z,tmp_kercnt,tmp_MsErr,tmp_MaxErr]=...</span><br><span class=comment>% ordinary_greedyappx(X,ker,arg,p,mserr,maxerr,verb,init_model);</span><br> kercnt = kercnt+tmp_kercnt;<br> <span class=keyword>end</span><br><br> tmp_Z = tmp_Z(i:size(tmp_Z,1),:);<br> A = tmp_Z*tmp_Z';<br><br> tmp1 = sum(tmp_Z.^2,1);<br> tmp1(find(tmp1==0))=inf;<br> tmp = sum((A*tmp_Z).*tmp_Z,1)./tmp1;<br> tmp(sel_inx) = -inf; tmp(find(Errors<=0)) = -inf;<br> [dummy,new_inx]=max(tmp);<br> <br><span class=comment>% [V,D] = eig(A);</span><br><span class=comment>% D=diag(D);</span><br><span class=comment>% [dummy,inx]=max(D);</span><br><span class=comment>% z = V(:,inx);</span><br><span class=comment>% dummy = z'*A*z/(z'*z) </span><br> <br> <span class=comment>% orthonormalization</span><br> sel_inx = [sel_inx new_inx];<br> tmp = kernel( X(:,new_inx), X(:,work_inx), ker, arg );<br> kercnt=kercnt+num_data-i;<br>
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -