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

📄 bayesleastrisk.m

📁 matlab贝叶斯分类器
💻 M
字号:
%函数名称:bayesleastrisk()
%参数:sample:待识别样品特征
%返回值:y:待识别样品所属类别
%函数功能:最小风险的贝叶斯分类器
function y=bayesleastrisk(sample)
clc;
load templet pattern;
%对样品库和待测样品进行主成分分析
[pcapat,pcasamp]=pcapro(sample);
temp=0;
for i=1:10
    pattern(i).feature=pcapat(:,temp+1:temp+pattern(i).num);
    temp=temp+pattern(i).num;
end
s_cov=[];
s_inv=[];
s_det=[];
for i=1:10
    s_cov(i).dat=cov(pattern(i).feature');%求各类别的协方差矩阵
    s_inv(i).dat=inv(s_cov(i).dat);%求协方差矩阵的逆矩阵
    s_det(i)=det(s_cov(i).dat);%求协方差矩阵的行列式
end
sum1=0;
p=[];
for i=1:10
    sum1=sum1+pattern(i).num%求样品库样本总数
end
for i=1:10
    p(i)=pattern(i).num/sum1;%求各类别的先验概率
end
h=[];
mean_sap=[];
for i=1:10
    mean_sap(i).dat=mean(pattern(i).feature')'%求每一类样品的特征均值
end
%计算各类别的后验概率
for i=1:10
    h(i)=(pcasamp-mean_sap(i).dat)'*s_inv(i).dat*(pcasamp-mean_sap(i).dat)...
        *(-0.5)+log(p(i))+log(abs(s_det(i)))*(-0.5);
end
loss=ones(10)-diag(diag(ones(10)));
risk=0;
m=[];
%计算最小风险
for i=1:10
    m=loss(i,:);
    risk(i)=m*h';
end
[minval minpos]=min(risk);
y=minpos-1;
    

⌨️ 快捷键说明

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