⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bayes.m

📁 脱机手写体识别Matlab源程序 包括特征提取、bayes分类器、K近邻分类及最近邻分类。 TestScriptRecognition.m:测试代码 ScriptFeaExtract.m :
💻 M
字号:
% 测试Bayes分类器
%
% 给定数据的高斯分布参数(均值与协方差)和测试数据
% 计算bayes分类器对测试数据的输出
%
% X           需要分类的样本数据,dim X N 矩阵,dim为特征维数,N为样本容量
% MI          类样本均值,dim X c 矩阵,c为类别数量
% SIGMA       类样本协方差矩阵
%             SIGMA=[sigma_1,sigma_2,...,sigma_K], sigma_j是第j类的协方差矩阵
% Pk          类别先验概率,即样本的分布情况,每个类别所占比例,1Xc
function [I,Pkx]=Bayes(X,MI,SIGMA,Pk)
% 判决函数为后验概率 % PR lecture 2 ,ppt9
K=size(MI,2);  % number of classes
DIM=size(X,1); % dimension
N=size(X,2);   % number of observations

Pkx=zeros(N,K);
for k=1:K,
   logPk=log(Pk(k));
   halfLogDetSigma=0.5*log(det(SIGMA(:,(k-1)*DIM+1:k*DIM)));

   Pkx(:,k)=repmat(logPk,N,1)-repmat(halfLogDetSigma,N,1)-0.5*...
       mahalan(X,MI(:,k), SIGMA(:,(k-1)*DIM+1:k*DIM))';
end
Pkx=Pkx';
[tmp,I]=max(Pkx);


% 计算 Mahalanobis 距离 (即马氏距离)
% see: lecture 2 ,ppt 9
% X      样本矩阵
% mi     均值
% sigma  协方差矩阵
function dist = mahalan(X,mi,sigma)
K=size(X,2);
DIM=size(X,1);
mi=mi(:);
% computes it for all the points in matrix X
if DIM == 1,
   dist=((X-repmat(mi,1,K))'*inv(sigma).*(X-repmat(mi,1,K))')';
else
   dist=sum( ((X-repmat(mi,1,K))'*inv(sigma).*(X-repmat(mi,1,K))')');
end


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -