bayesclassier.m

来自「贝叶斯分类器」· M 代码 · 共 37 行

M
37
字号
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 + =
减小字号Ctrl + -
显示快捷键?