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

📄 bayestrain.m

📁 脱机手写体识别Matlab源程序 包括特征提取、bayes分类器、K近邻分类及最近邻分类。 TestScriptRecognition.m:测试代码 ScriptFeaExtract.m :
💻 M
字号:
% 构建Bayes分类器
% 即求每一个类别的均值和协方差矩阵
% 样本数量不够,目前处理方法是假设各类别的协方差矩阵相同
% 
% trainX      训练样本特征矩阵
% trainY      训练样本类标
% MI          各类别的均值 
% SIGMA       各类别的协方差矩阵
% Pk          各类别的先验概率
function [MI,SIGMA,Pk]=BayesTrain(trainX,trainY)
d=size(trainX,1);         % 特征向量长度
N=size(trainX,2);         % 训练样本数量
c=length(unique(trainY)); % 类别数量

classLabMin=min(trainY);  % 类标最小值
classLabMax=max(trainY);  % 类标最大值


MI=zeros(d,c);            % 均值
SIGMA=zeros(d,d);         % 协方差矩阵
for j=classLabMin:classLabMax
    classJ=find(trainY==j);  % 第j个类别
    Pk(j-classLabMin+1)=length(classJ)/N; % 计算先验概率
    MI(:,j)=sum(trainX(:,classJ),2)/length(classJ);
end

u=mean(MI,2);             % 所有类别的均值,?
for i=1:N
    SIGMA=SIGMA+(trainX(:,i)-u)*((trainX(:,i)-u).');
end
SIGMA=SIGMA./N;           % 求平均

% 目前假设各类别的协方差矩阵相同,将上述SIGMA扩充C倍
SIGMA=repmat(SIGMA,1,c);

⌨️ 快捷键说明

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