📄 bayesclassier.m
字号:
function [label] = BayesClassier(Trainvecter,Testvecter,PersonNum,TrainNum,TestNum,vectDim)
%Bayes分类法
%vecter:分类矢量,包括训练样本和测试样本,前面为TainNum个训练样本,后面为TesNum测试样本
%PesonNum:人数
%vecDim:矢量维数
%result:分类结果
PersonNum = 10;
TrainNum = 400;
TestNum = 200;
%求每一类别的均值和协方差矩阵
Means = zeros(PersonNum,vectDim);
Covs = zeros(PersonNum,vectDim,vectDim);
for i=1:PersonNum
vect = Trainvecter((i-1)*TrainNum+1:i*TrainNum,:);
Means(i,:) = mean(vect);
Covs(i,:,:) = cov(vect);
end
%构建Baes分类器对测试样本分类
label = zeros(PersonNum,TestNum);
g = zeros(PersonNum,1);
for i=1:PersonNum
for j=1:TestNum
x = Testvecter((i-1)*TestNum+j,:)';
for k=1:PersonNum
tempmean = reshape(Means(k,:),vectDim,1);
tempcov = reshape(Covs(k,:,:),vectDim,vectDim);
g(k) = log(det(tempcov)) + (x - tempmean)'*inv(tempcov)*(x - tempmean);
end
[min,lab]=min(g);
label(i,j) = lab;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -