当前位置:文档之家› 贝叶斯分类器

贝叶斯分类器

实验报告一. 实验目的1、 掌握密度函数监督参数估计方法;2、 掌握贝叶斯最小错误概率分类器设计方法。

二.实验内容对于一个两类分类问题,设两类的先验概率相同,(12()()P P ωω=),两类的类条件概率密度函数服从二维正态分布,即11(|)~(,)P N ω1x μΣ2(|)~(,)P N ω22x μΣ其中,=[3,6]T 1μ,0.50=02⎡⎤⎢⎥⎣⎦1Σ,=[3,-2]T2μ,20=02⎡⎤⎢⎥⎣⎦2Σ。

1) 随机产生两类样本;2) 设计最大似然估计算法对两类类条件概率密度函数进行估计;3) 用2)中估计的类条件概率密度函数设计最小错误概率贝叶斯分类器,实现对两类样本的分类。

三.实验原理 最大似然估计1. 作用在已知试验结果(即是样本)的情况下,用来估计满足这些样本分布的参数,把可能性最大的那个参数θ作为真实*θ的参数估计。

2. 离散型设X 为离散型随机变量,12=(,,...,)k θθθθ为多维参数向量,如果随机变量1,...,nX X 相互独立且概率计算式为{}1(;,...)i i i k P x p x θθX ==,则可得概率函数为{}1111,...,(;,...)nn n i k i P x x p x θθ=X =X ==∏,在12=(,,...,)k θθθθ固定时,上式表示11,...,n nx x X =X =的概率;当11,...,n nx x X =X =已知的时候,它又变成12=(,,...,)k θθθθ的函数,可以把它记为12111(,,...,)(;,...,)nk k i L p x θθθθθ==∏,称此函数为似然函数。

似然函数值的大小意味着该样本值出现的可能性的大小,既然已经得到了样本值11,...,n nx x X =X =,那么它出现的可能性应该是较大的,即似然函数的值也应该是比较大的,因而最大似然估计就是选择使12(,,...,)k L θθθ达到最大值的那个θ作为真实*θ的估计。

3. 连续型设X 为连续型随机变量,其概率密度函数为1(;,...)i k f x θθ,1,...nx x 为从该总体中抽出的样本,同样的如果1,...nx x 相互独立且同分布,于是样本的联合概率密度为12111(,,...,)(;,...,)nk k i L f x θθθθθ==∏。

大致过程同离散型一样。

最大后验概率判决准则先验概率1()P ω和2()P ω,类条件概率密度1(|)P X ω和2(|)P X ω,根据贝叶斯公式1(|)()(|)(|)()i i i cjjj p x P P X p X P ωωωωω==∑,当12(|)(|)P P ωω>x x 则可以下结论,在x 条件下,事件1ω出现的可能性大,将x 判定为1ω类。

四.实验结果1. 产生样本根据实验提供的先验均值向量和协方差矩阵,利用编写的multivrandn 函数构造二维正态分布,产生500N =个样本,如图1所示。

图1. 产生两类训练样本2. 参数估计对产生的样本进行最大似然估计,估计出样本二维正态分布的均值向量和协方差矩阵。

其中11ni MLi x N ==∑^μ,11()()nTii ML MLi x x N ==--∑^^^Σμμ。

估计结果如下: []1=3.016 5.976^μ,[]2=2.922 -2.027^μ,10.44910.0019=0.00191.9712⎡⎤⎢⎥⎣⎦^Σ,2 2.05790.1692=0.1692 1.8779⎡⎤⎢⎥⎣⎦^Σ。

相比较给定的均值向量和协方差矩阵,误差不大。

3. 分类器设计根据上面得出的参数估计结果和贝叶斯最大后验概率判决准则设计分类器。

当(|)()()(|)()j i i j p x P L x p x P ωωωω=>,则j x ω∈。

设计分类函数,对样本进行分类判决。

例如对类别1中的第一个样本进行分类,结果如图2所示:图2. 分类结果对两组样本进行分类,运用matlab理论计算出分界线,分类结果如图3所示:图3两组样本分类结果五.结果分析1、产生样本在产生样本的过程中,利用二维正态分布函数函数产生大量样本,经过均值和协方差矩阵的估计后可以看出,样本的均值和协方差矩阵与理论值相差不大,也就说明产生样本过程基本正确。

2、参数估计参数估计完全按照最大似然估计过程,结果如上面结果所显示,由于样本产生较好,样本数量较大,估计值也比较准确,从反面也验证了参数估计过程的正确性。

3、分类器设计根据最大后验概率判决准则,利用估计出的参数,设计分类器,分类结果图3所示,有个别误差,大部分样本分类正确。

4、添加干扰,检测实验结果在产生样本时,添加均匀分布的一个干扰项,再次验证参数估计结果和分类结果如下:1=[7.8495 11.1080]^μ,2=[7.9071 2.8887]^μ,18.2906 -0.1602 =-0.1602 10.1773⎡⎤⎢⎥⎣⎦^Σ,29.93400.6933 =0.693310.1203⎡⎤⎢⎥⎣⎦^Σ。

结果可以看出与理论值差距较大。

分类结果的错误程度如图4所示。

图4分类结果错误程度六. 实验代码本次实验代码总共分为三部分:主程序部分及两个函数程序部分:1.主程序如下:clearall;closeall;clc;d=2; %二维pw1=0.5;pw2=0.5;u1=[3,6];u2=[3,-2]; %均值向量sigma1=[0.5,0;0,2]; %协方差矩阵sigma2=[2,0;0,2];N=500; %训练样本数samples1=multivrandn(u1,sigma1,N);samples2=multivrandn(u2,sigma2,N);figure(1);fori=1:Nplot(samples1(i,1),samples1(i,2),'b*');hold on;plot(samples2(i,1),samples2(i,2),'ro');hold on;endlegend('训练样本1','训练样本2');hold on;u_1=mean(samples1,1); %估计均值u_2=mean(samples2,1);sig1=zeros(2,2); %协方差矩阵的估计fori=1:Ntemp=(samples1(i,:)-u_1)'*(samples1(i,:)-u_1);sig1=sig1+temp;endsig1=sig1/N; %估计协方差矩阵sig2=zeros(2,2);fori=1:Ntemp=(samples2(i,:)-u_2)'*(samples2(i,:)-u_2);sig2=sig2+temp;endsig2=sig2/N;%% 画出实际分类线syms x1 x2f1=(1/(sqrt(2*pi).^d)./det(sig1).*exp(-1/2*([x1 x2]-u_1)*inv(sig1)*([x1 x2]-u_1)')); f2=(1/(sqrt(2*pi).^d)./det(sig2).*exp(-1/2*([x1 x2]-u_2)*inv(sig2)*([x1 x2]-u_2)')); f3=f2/f1-pw1/pw2;ezplot(f3,[-4,10]);hold on;text(-2,4,'分界线');2.二维正态分布样本产生函数multivrandnfunction Y = multivrandn(u,R,M)% this function draws M samples from N(u,R)% where u is the mean vector(row) and R is the covariance matrix which must be positive definite n = length(u); % get the dimensionC = chol(R); % perform choleskydecomp R = C'CX = randn(M,n); % draw M samples from N(0,I)Y = X*C + ones(M,1)*u;end3.分类判决函数分类fenlei( x,pw1,pw2,u_1,u_2,sig1,sig2,d )function fenlei( x,pw1,pw2,u_1,u_2,sig1,sig2,d )%UNTITLED2 Summary of this function goes here% Detailed explanation goes heref1=(1/(sqrt(2*pi).^d)./det(sig1).*exp(-1/2*(x-u_1)*inv(sig1)*(x-u_1)'));f2=(1/(sqrt(2*pi).^d)./det(sig2).*exp(-1/2*(x-u_2)*inv(sig2)*(x-u_2)'));if (f1/f2)>(pw2/pw1)disp('样本属于第一类');elsedisp('样本属于第二类');endend。

相关主题