模式识别实验一(最小贝叶斯决策及ROC曲线)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一
一、 实验原理
1. 最小错误率贝叶斯决策规则:
对于两类问题,最小错误率贝叶斯决策有如下判决规则:
1212(|)(|),;P x P x x x ωωωω>∈∈则反之,则。
由于先验概率i (P ω)可以确定,与当前样本x 无关,所以决策
规则也可整理成下面的形式:
121212(|)()(),()
(|)P x P l x x x P P x ωωωωωω=>∈∈r r r r 若,则否则。 2. 平均错误率
决策边界把x 轴分割成两个区域,分别称为第一类和第二类
的决策区域.样本在中但属于第二类的错误概率和样本在中
但属于第一类的错误概率就是出现错误的概率,再考虑到样
本自身的分布后就是平均错误率:
212211()(|)()(|)()(|)P()(|)P()t t t t
P e P x p x dx P x p x dx p x dx p x dx ωωωωωω∞-∞∞-∞=+=+⎰⎰⎰⎰r r r r r r 3. 此实验中的判决门限和平均错误率
(1) 判决门限
假设随机脉冲信号f 中0的概率为,高斯噪声信号n 服
从,信号叠加时的放大倍数为a ,叠加后的信号为
*s f a n =+。
由最小错误率贝叶斯决策可得:
1122()(|)()(|)P p x P p x ωωωω→→> 化简计算得:220022(ln(1)ln )
2a a a p p t μσ+---=
(2) 平均错误率
由上述积分式可计算。
二、 实验内容
1、 已知均值和方差,产生高斯噪声信号,计算其统计特性
实验中利用MATLAB 产生均值为0,方差为1的高斯噪声信号,信号统计分布的程序和结果如下:
%产生高斯噪声并统计其特性
x=0;%均值为0
y=1;%方差为1
n=normrnd(x,y,[1 1000000]);%产生均值为0,方差为1的高斯噪声
m1=mean(n);%高斯噪声的均值
v1=var(n); %高斯噪声的方差
figure(1)
plot(n(1:400)); title('均值为0,方差为1的高斯噪声');
figure(2)
hist(n,10000); title('高斯噪声的统计特性');
得到m1=-4.6534e-005;v1= 0.9971。
2.已知随机脉冲信号中0和1的出现概率,产生该随机脉冲信号,分析其统计特性
实验中利用MATLAB产生随机脉冲信号,信号统计分布的特性程序及结果如下:
%随机脉冲信号及其统计特性
p=unidrnd(10000,1,1000000);%产生1到100000之间均匀分布的随机序列
p0=0.4;
f=p>(p0*10000);%设置门限,此时0的概率为0.4,1的概率为0.6
m2=mean(f);
v2=var(f);
figure(3);
stairs(f(1:400));title('随机脉冲信号');
axis([0 400 -0.2 1.2]);
figure(4)
hist(f,-0.2:0.01:1.2);title('随机脉冲序列的统计特性');
得到:m2=0.5995;
V2=0.2401。
3.在随机脉冲信号中叠加高斯噪声信号,在不同的参数设置下分析其统计特性
用MATLAB将两个信号叠加,并分析其统计特性,具体程序及结果如下:
%随机脉冲信号叠加高斯噪声信号及其统计特性
a=5;%取随机信号的幅度为5
s=f*a+n;%对高斯噪声信号和随机脉冲序列进行叠加
m3=mean(s);%信号的均值
v3=var(s);%信号的方差
subplot(2,1,1);
stairs(s(1:400));%绘制部分叠加信号
title('叠加后的信号');
subplot(2,1,2);
hist(s,1000)%绘图分析叠加后信号的统计特性
title('叠加后信号的统计特性')
得到m3=2.9994;v3= 6.9964;
4.依据最小错误概率贝叶斯决策原理,确定判决门限,完成信号检测,计算两类错误率
设判决门限为t,平均错误率为e,利用MATLAB计算t和e,具体程序和结果如下:
%确定判决门限,完成信号检测,计算两类错误率
a=5;
p0=0.4;%第一类先验概率为0.4
t=(a^2 -2*v1*(log(1-p0)-log(p0)))/(2*a);%利用贝叶斯决策计算判别门限
s1=s>t;%执行判决
e1=sum((f-s1)==-1)/(1000000*p0);%计算虚警率
e2=sum((f-s1)==1)/(1000000*(1-p0));%计算漏检率
e=e1*p0+e2*(1-p0);%计算平均错误率
得到:判决门限t=2.4189,平均错误率e=0.0060。
5.改变判决门限,绘制ROC曲线
在MATLAB中调用ROC函数,程序及绘制的曲线如下所示:(1)利用贝叶斯最小错误概率绘制ROC曲线
Smin=min(s1);
Smax=max(s1);
o=(s1-Smin)/(Smax-Smin);%对s进行归一化处理
[tpr,fpr,thresholds]=roc(f,o);%调用roc函数
plotroc(f,o);%绘制ROC曲线
title('ROC曲线')
(2)改变判决门限,令t=1.8, 2.0, 2.2, 2.4, 2.6, 2.8,得到的平均错误概率分别为e=0.0148,0.0099,0.0071, 0.0060,0.0068, 0.0068。数据表明,贝叶斯决策平均错误率理论上是最小错误概率。