function Bayes2ﻫ%为了提高实验样本测试的精度,故采用多次模拟求平均值的方法ﻫN=input('实验模拟次数 N(N最好为奇数)= ');
Result(1:3,1:3)=0; %判别矩阵的初始化ﻫfor k=1:N %控制程序模拟次数Nﻫ %生成二维正态分布的样本2 X N 维的矩阵
X1=mvnrnd([1 2],[4 0;0 6],300)’; %2 X Nﻫ X2=mvnrnd([5 3],[5 0;0 1],200)';ﻫ X3=mvnrnd([4 7],[2 0;0 9],500)'; %样本程序
%-—-----—-—-—-------——-—---—-------—--—-—-—----——--—%ﻫ %测试样本
X10=mvnrnd([1 2],[4 0;0 6],100)'; %2 X N
X20=mvnrnd([5 3],[5 0;0 1],100)’;ﻫ X30=mvnrnd([4 7],[2 0;0 9],100)'; ﻫ %先验概率ﻫ P(1)=length(X1)/(length(X1)+length(X2)+length(X3));ﻫ P(2)=length(X2)/(length(X1)+length(X2)+length(X3));ﻫ P(3)=length(X3)/(length(X1)+length(X2)+length(X3));
%计算相关量 cov(X):协方差矩阵 Ave:均值
%-———--——-—--—--———-------——--—--——----—------——----—-—-—%
W1=-1/2*inv(cov(X1')); W2=-1/2*inv(cov(X2')); W3=-1/2*inv(cov(X3'));%
Ave1=(sum(X1')/length(X1))’;Ave2=(sum(X2’)/length(X2))';
Ave3=(sum(X3')/length(X3))’;%计算平均值(2维列向量)ﻫ w1=inv(cov(X1'))*Ave1;w2=inv(cov(X2’))*Ave2;w3=inv(cov(X3’))*Ave3;%2
w10=—1/2*Ave1'*inv(cov(X1'))*Ave1—1/2*log(det(cov(X1’)))+log(P(1));
w20=—1/2*Ave2’*inv(cov(X2'))*Ave2—1/2*log(det(cov(X2’)))+log(P(2));
w30=-1/2*Ave3'*inv(cov(X3'))*Ave3-1/2*log(det(cov(X3')))+log(P(3));
%--—--——————————-——----——-——-—-—-————--——---————---—------—-%ﻫ for i=1:3
for j=1:100
贝叶斯分类器MATLAB经典程序 来自淘豆网www.taodocs.com转载请标明出处.