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

📄 bayesclassier.m

📁 贝叶斯分类器
💻 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 + -