資源簡介
基于matlab的svr代碼示例基于matlab的svr代碼示例基于matlab的svr代碼示例
代碼片段和文件信息
function?[nsv?beta?bias]?=?svr(XYkerClosse)
%SVR?Support?Vector?Regression
%
%??Usage:?[nsv?beta?bias]?=?svr(XYkerClosse)
%
%??Parameters:?X??????-?Training?inputs
%??????????????Y??????-?Training?targets
%??????????????ker????-?kernel?function
%??????????????C??????-?upper?bound?(non-separable?case)
%??????????????loss???-?loss?function
%??????????????e??????-?insensitivity
%??????????????nsv????-?number?of?support?vectors
%??????????????beta???-?Difference?of?Lagrange?Multipliers
%??????????????bias???-?bias?term
%
%??Author:?Steve?Gunn?(srg@ecs.soton.ac.uk)
??if?(nargin?3?|?nargin?>?6)?%?check?correct?number?of?arguments
????help?svr
??else
????fprintf(‘Support?Vector?Regressing?....\n‘)
????fprintf(‘______________________________\n‘)
????n?=?size(X1);
????if?(nargin<6)?e=0.0;?end
????if?(nargin<5)?loss=‘eInsensitive‘;?end
????if?(nargin<4)?C=Inf;?end
????if?(nargin<3)?ker=‘linear‘;?end??
????%?tolerance?for?Support?Vector?Detection
????epsilon?=?svtol(C);
????%?Construct?the?Kernel?matrix
????
????fprintf(‘Constructing?...\n‘);
????H?=?zeros(nn);??
????for?i=1:n
???????for?j=1:n
??????????H(ij)?=?svkernel(kerX(i:)X(j:));
???????end
????end
????%?Set?up?the?parameters?for?the?Optimisation?problem
????switch?lower(loss)
??????case?‘einsensitive‘
????????Hb?=?[H?-H;?-H?H];
????????c?=?[(e*ones(n1)?-?Y);?(e*ones(n1)?+?Y)];??
????????vlb?=?zeros(2*n1);????%?Set?the?bounds:?alphas?>=?0
????????vub?=?C*ones(2*n1);???%?????????????????alphas?<=?C
????????x0?=?zeros(2*n1);?????%?The?starting?point?is?[0?0?0???0]
????????neqcstr?=?nobias(ker);?%?Set?the?number?of?equality?constraints?(1?or?0)??
????????if?neqcstr
??????????A?=?[ones(1n)?-ones(1n)];?b?=?0;?????%?Set?the?constraint?Ax?=?b
????????else
??????????A?=?[];?b?=?[];?
????????end
??????case?‘quadratic‘
????????Hb?=?H?+?eye(n)/(2*C);
????????c?=?-Y;
????????vlb?=?-1e30*ones(n1);???
????????vub?=?1e30*ones(n1);????
????????x0?=?zeros(n1);??????????????%?The?start
評論
共有 條評論