贝叶斯分类器

编程实现贝叶斯分类器。编写matlab函数,输入为:
(a)均值向量;(b)c类问题的类分布的协方差矩阵;(c)c类的先验概率;(d)基于上述类的包含列向量的矩阵X。
根据贝叶斯规则,输出为一个N维向量,它的第i列表示相应输入向量X的第i列的类别。

clear all;clc;
mu = [1 -1];
Sigma = [.9 .4; .4 .3];
r = mvnrnd(mu, Sigma, 5);
S(:,:,1)=Sigma;
S(:,:,2)=cov®;
P=[0.9 0.1];
N=5;
m=[1,0;-1,1];
[x,y]=generate_gauss_classes(m,S,P,N)
bayes_classifier(m,S,P,x)

function [x,y]=generate_gauss_classes(m,S,P,N)
[l,c]=size(m);
x=[];
y=[];
for j=1:c
t=mvnrnd(m(:,j),S(:,:,j),fix(P(j)*N));
x=[x t’];
y=[y ones(1,fix(P(j)*N))*j];
end

function z=comp_gauss_dens_val(m,S,x)
[l,q]=size(m);
z=(1/((2*pi)(1/2)*det(S)0.5))…
exp(-0.5(x-m)inv(S)(x-m)’);

function z=bayes_classifier(m,S,P,X)
[l,c]=size(m);
[l,N]=size(X);
for i=1:N
for j=1:c
t(j)=P(j)*comp_gauss_dens_val(m(:,j)’,…
S(:,:,j),X(:,i)’);
end
end
[num,z(i)]=max(t);
end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值