📄 weaklearner.html
字号:
<html><head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1"> <title>weaklearner.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>weaklearner</span>(<span class=defun_in>data</span>)<br><span class=h1>% WEAKLEARNER Produce classifier thresholding single feature.</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Synopsis:</span></span><br><span class=help>% model = weaklearner(data)</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Description:</span></span><br><span class=help>% This function produce a weak binary classifier which assigns</span><br><span class=help>% input vector x to classes [1,2] based on thresholding a single </span><br><span class=help>% feature. The output is a model which defines the threshold </span><br><span class=help>% and feature index such that the weighted error is minimized.</span><br><span class=help>% This weak learner can be used with the AdaBoost classifier</span><br><span class=help>% (see 'help adaboost') as a feature selection method.</span><br><span class=help>% </span><br><span class=help>% <span class=help_field>Input:</span></span><br><span class=help>% data [struct] Training data:</span><br><span class=help>% .X [dim x num_data] Training vectors.</span><br><span class=help>% .y [1 x num_data] Binary labels (1 or 2).</span><br><span class=help>% .D [1 x num_data] Weights of training vectors (optional).</span><br><span class=help>% If not given then D is set to be uniform distribution.</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] Normal vector of hyperplane.</span><br><span class=help>% .b [1x1] Bias of the hyperplane.</span><br><span class=help>% .fun = 'linclass'.</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Example:</span></span><br><span class=help>% help adaboost</span><br><span class=help>%</span><br><span class=help>% See also: </span><br><span class=help>% ADABOOST, ADACLASS.</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-2004, 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>% 25-aug-2004, VF</span><br><span class=help1>% 11-aug-2004, VF</span><br><br><hr>[dim,num_data] = size(data.X);<br><br>W = zeros(dim,1);<br>Errors = zeros(dim,1);<br><br><span class=keyword>for</span> i=1:dim,<br><br> x = [-inf,sort(unique(data.X(i,:)))];<br> <br> err = []; f = [];<br> <span class=keyword>for</span> j=1:length(x)-1,<br> <br> f(j) = 0.5*(x(j)+x(j+1));<br><br> y = ones(1,num_data);<br> y(find(data.X(i,:)< f(j))) = 2;<br><br> err(j) = sum((y(:)~=data.y(:)).*data.D(:));<br> <br> <span class=keyword>end</span><br><br> [minerr1,inx1] = min(err);<br> [minerr2,inx2] = min(1-err);<br> <span class=keyword>if</span> minerr1 < minerr2,<br> W(i) = 1;<br> Errors(i) = minerr1;<br> b(i) = -f(inx1);<br> <span class=keyword>else</span><br> W(i) = - 1;<br> Errors(i) = minerr2;<br> b(i) = f(inx2);<br> <span class=keyword>end</span><br> <br><span class=keyword>end</span><br><br>[dummy,inx] = min(Errors);<br><br>model.W = zeros(dim,1);<br>model.W(inx) = W(inx);<br>model.b = b(inx);<br>model.fun = <span class=quotes>'linclass'</span>;<br><br>y = linclass(data.X,model);<br>err = sum((y(:)~=data.y(:)).*data.D(:));<br><br><span class=jump>return</span>;<br><br><span class=comment>%EOF</span><br></code>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -