贝叶斯分类仿真实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 贝叶斯分类仿真实验
1. 引言
贝叶斯定理用数学家Thoms Bayes 命名的,他是18世纪概率论和决策论的早期研究者。贝叶斯决策理论是主观贝叶斯派归纳理论的重要组成部分。 贝叶斯决策就是在不完全情报下,对部分未知的状态用主观概率估计,然后用贝叶斯公式对发生概率进行修正,最后再利用期望值和修正概率做出最优决策。
1.1 贝叶斯决策基本思想 贝叶斯决策理论方法是统计模型决策中的一个基本方法,其基本思想: ★已知类条件概率密度参数表达式和先验概率;
★利用贝叶斯公式转换成后验概率;
★根据后验概率大小进行决策分类。
1.2 贝叶斯公式
设H1,H2,……,H M 为样本空间S 的一个划分,如果以P(Hj)表示事件Hi 发生的概率,且P(Hj)>0(j=1,2,…,n)。对于任一事件X,P(X)>0,则贝叶斯公式如下:
P(Hj|X)=P(X|Hj)P(Hj)/ ∑=M
j 1Hj)P(Hj)|P(X
2. 基于最小错误率贝的叶斯决策
2.1 对于贝叶斯公式的深入理解
对于引言中贝叶斯的公式,可能大家对P(H|X)与P(X|H)的区别是什么等问题存在疑问,下面我们就来深入理解该公式,X 是一个元组,假设其中可以分成M 类,M 的先验概率是P(H),而P(X|H)则被我们看成是概率密度函数对于待归类的样品,贝叶斯可以计算出属于M 类中各个类的概率大小,看X 属于那个类的可能性大,就把他归属为那一类。
★先验概率
针对M 个出现的可能性而言的,不考虑任何其他的条件。例如,有统计资料表明出产产品总数为N ,其中合格品为N1,不合格品为N2,P(H1)=N1/N ,P(H2)=N2/N 。我们可以看到,这两者都可以事先计算出来。但是如果我们只有先验概率是不够的,假设我们生产的产品是N1多于N2,那么我们得到的概率就是合格的可能性大于不合格的可能性,故我们只能把所有的产品都判断为合格,因为合格的概率大一些,但这样的结果并没有让我们把不合格的产品分离出来,这就表明我们仅从先验概率来进行分类识别是不够的,我们还需要更多的初始信息。于是我们引进了类条件概率密度。 ★类条件概率密度
类条件概率密度P(X|Hj)是指在已知的特征空间中,出现特征值的概率密度,指的是Hj 类样品其属性X 是怎么样分布的。
★后验概率
后验概率是指在呈现状态X 时, 该样品属于Hj 中各个类别的概率,这个概率可以用来判别Hj 的归属类别依据。从而实现贝叶斯分类器。
★关于P(Hj|X)与P(X|Hj)的区别
首先,要明确,从我们前面的理论大家可以发现P(Hj|X)是后验概率,是结论;P(X|Hj)是类条件概率密度函数,是已知的前提。类概率条件密度函数是前人总结的统计的概率分布,我们是直接拿来使用的,用它来补充先演概率的信息不足。我们还是拿前面的例子来说,P(H1|X)与P(H2|X)是指在同一条件X 下,比较H1和H2的出现概率,如果P(H1|X)>P(H2|X),则事件H1出现的可能性大,反之则是H2出现的可能性大。我们可以发现P(H1|X) 与P(H2|X)之和为1,因为对于产品来说,只有合格和不合格两种情况,不可能出现第三种情况。P(X|H1)与P(X|H2)都是指在各自条件下出现X 的可能性,两者没有必然的联系。比较两者大小也没有实际意义,两者是在不同条件下讨论问题的,两者之和也没有等于1的结论。
2.2 基于最小错误率贝的叶斯决策详解
为了大家的理解,我们先看两类问题,对于两类问题,
P(H1|X)=P(X|H1)P(H1)/P(X),P(H2|X)=P(X|H2)P(H1)/P(X),其中
P(X)=P(X|H1)P(H1)+P(X|H2)P(H2),利用后验概率在作判别。那么推广到多类别问题后,P(Hj|X)=P(X|Hj)P(Hj)/P(X),由全概率公式
P(X)= ∑=M j 1P(X|Hj)P(Hj),其中M 为类别个数。
在取得一个特征X 之后,在特征X 的条件下,看哪个概率最大,就应该把X 归于概率最大的那个类。因此对于任一模式X ,可以通过比较各个判别函数来确定X 的类别。
P(Hi)P(X|Hi)= max j 1M
≤≤{P(Hj)P(X|Hj)};⇒X ∈Hi, i=1,2,3,…,M
使用什么样的原则可以做到错误概率最小呢? 前提就是要知道一样品分属于不同类别的可能性,表示成P(Hj|X),然后计算后验概率最大的类来分类,这样就是错误最小的方式。
3. 基于最小风险的贝叶斯决策
前面我们讨论了最小错误的贝叶斯决策,但是,是不是在任何情况下都使用基于最小错误的贝叶斯决策才是最佳的呢? 实际情况不是这样的,比如对于药品的检测,对于药品生产商而言,大部分的药品都是合格的,只有少数的不合格。如果我们把正常药品判断成异常药品,样会增加总的
错误率,给企业带来一些损失;但如果把异常药品判断成正常药品,虽然会使错误率最小,但病人可能会被使用不合格的药品,对治疗非常不利,甚至会使得病人耽误治疗,乃至于有生命危险。可见这时使用错误率最小是不合适的。我们用下图进一步说,大家会看得更清楚。从上面我们发现,单纯的考虑后验概率的最小错误率,会带来更多的损失和风险,为了体现这种风险,对贝叶斯公式进行加权修正,表示成
Ri(X)=∑=M j 1λ(αi ,j)P(Hj|X),
其中αi 代表将X 判为Hi 类的决策,λ(αi,j)表示观测样品X 实际属于Hj,由于采用αi 决策而被判为Hj 时所造成的损失;Ri 则表示观测X 被判别为i 类时的损失均值;例如从前面的例子,λ(α1,2)表示X 确实是异常药品,但采取决策α1被判定为正常,则会有损失λ(α1,2);λ(α2,1)表示X 确实是正常药品,但采取决策α2被判定为异常。为了基于风险考虑我们会把损失函数的λ(α1,2)的值大于λ(α2,1),因为前者的风险更大。基于最小风险也就是要寻找Ri(αi|X)的最小值,并以此作为分类的依据。
4. 用Matlab 实现贝叶斯分类
4.1 程序代码如下
prior=[0.7 0.3];
data=10+2*randn(100,1);
[mu,sigma]=normfit(data);
data1=5+4*randn(100,1);
[mu1,sigma1]=normfit(data1);
figure;
plot(-3:0.01:18,normpdf(-3:0.01:18,mu,sigma),'b'),
hold on ;
plot(-5:0.01:18,normpdf(-5:0.01:18,mu1,sigma1),'r')
x=7;
stem(x,normpdf(x,mu,sigma));
stem(x,normpdf(x,mu1,sigma1),'r') ;
xlabel('x');h=legend('class 1 pdf','class 2 pdf',2);
title('class condition probability function')
hold off
post=normpdf(x,mu,sigma)*prior(1);
post1=normpdf(x,mu1,sigma1)*prior(2);
figure;
plot(-3:0.01:18,normpdf(-3:0.01:18,mu,sigma)*prior(1),'b')