📄 bayesdf.html
字号:
<html><head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1"> <title>bayesdf.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>quad_model</span>=<span class=defun_name>bayesdf</span>(<span class=defun_in>model</span>)
<br><span class=h1>% BAYESDF Computes decision boundary of Bayesian classifier.
</span><br><span class=help>%
</span><br><span class=help>% <span class=help_field>Synopsis:</span></span><br><span class=help>% quad_model = bayesdf(model)
</span><br><span class=help>%
</span><br><span class=help>% <span class=help_field>Description:</span></span><br><span class=help>% This function computes parameters of decision boundary
</span><br><span class=help>% of the Bayesian classifier with the following assumptions:
</span><br><span class=help>% - 1/0 loss function (risk = expectation of misclassification).
</span><br><span class=help>% - Binary classification.
</span><br><span class=help>% - Class conditional probabilities are multivariate Gaussians.
</span><br><span class=help>%
</span><br><span class=help>% In this case the Bayesian classifier has the quadratic
</span><br><span class=help>% discriminant function
</span><br><span class=help>% f(x) = x'*A*x + B'*x + C,
</span><br><span class=help>%
</span><br><span class=help>% where the classification strategy is
</span><br><span class=help>% q(x) = 1 if f(x) >= 0,
</span><br><span class=help>% = 2 if f(x) < 0.
</span><br><span class=help>%
</span><br><span class=help>% <span class=help_field>Input:</span></span><br><span class=help>% model [struct] Two multi-variate Gaussians:
</span><br><span class=help>% .Mean [dim x 2] Mean values.
</span><br><span class=help>% .Cov [dim x dim x 2] Covariances.
</span><br><span class=help>% .Prior [1x2] A priory probabilities.
</span><br><span class=help>%
</span><br><span class=help>% <span class=help_field>Output:</span></span><br><span class=help>% quad_model.A [dim x dim] Quadratic term.
</span><br><span class=help>% quad_model.B [dim x 1] Linear term.
</span><br><span class=help>% quad_model.C [1x1] Bias.
</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_trn');
</span><br><span class=help>% gauss_model = mlcgmm(trn);
</span><br><span class=help>% quad_model = bayesdf(gauss_model);
</span><br><span class=help>% ypred = quadclass(tst.X,quad_model);
</span><br><span class=help>% cerror(ypred,tst.y)
</span><br><span class=help>% figure; ppatterns(trn); pboundary(quad_model);
</span><br><span class=help>%
</span><br><span class=help>% See also
</span><br><span class=help>% BAYESCLS, QUADCLASS
</span><br><span class=help>%
</span><br><hr><br><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>% 18-oct-2005, VF, dealing with Cov given as vector repared
</span><br><span class=help1>% 01-may-2004, VF
</span><br><span class=help1>% 19-sep-2003, VF
</span><br><span class=help1>% 24. 6.00 V. Hlavac, comments into English.
</span><br><br><hr><span class=comment>% allow input to be a cell
</span><br>model = c2s(model);
<br>
<br><span class=comment>% univariate variances can be given as a vector
</span><br><span class=keyword>if</span> size(model.Cov,1) == 1 && length(size(model.Cov)) < 3,
<br> model.Cov = reshape(model.Cov,1,1,length(model.Cov));
<br><span class=keyword>end</span>
<br>
<br>M1=model.Mean(:,1);
<br>M2=model.Mean(:,2);
<br>C1=model.Cov(:,:,1);
<br>C2=model.Cov(:,:,2);
<br>P1=model.Prior(1);
<br>P2=model.Prior(2);
<br>
<br>quad_model.A=(1/2)*(inv(C2)-inv(C1));
<br>quad_model.B=(M1<span class=quotes>'*inv(C1)-M2'</span>*inv(C2))';
<br>
<br><span class=comment>% Treatment of the case when apriori probabilities are zero.
</span><br><span class=comment>% log(0)=-inf;
</span><br><span class=keyword>if</span> P1==0,
<br> quad_model.C=-inf;
<br><span class=keyword>elseif</span> P2==0,
<br> quad_model.C=inf;
<br><span class=keyword>else</span>
<br> quad_model.C=(1/2)*(M2<span class=quotes>'*inv(C2)*M2-M1'</span>*inv(C1)*M1)+...
<br> log(sqrt(det(C2)))-log(sqrt(det(C1)))+log(P1)-log(P2);
<br><span class=keyword>end</span>
<br>
<br>quad_model.fun = <span class=quotes>'quadclass'</span>;
<br>
<br><span class=jump>return</span>;
<br></code>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -