利用MATLAB实现最小错误率贝叶斯判别

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

利用MATLAB实现最小错误率贝叶斯判别

摘要:Matlab软件平台为用户提供了强大的科学计算与可视化功能,具有简单、易用的用户环境,尤其适合矩阵数据的计算处理。根据Matlab的特点,将其与模式识别原理结合起来,以油水层识别为例,求解基于多元正态概率模型下的最小错误率贝叶斯判别函数和决策面方程。

关键词:Matlab 模式识别贝叶斯判别油水层识别

Abstract:Matlab software provides users with a powerful scientific computing and visualization capabilities.It has a simple and easy-to-use environment.It is especially suitable for the calculation of the matrix data.So it is a good idea to combine Matlab with pattern recognition.This paper showed a method how to distinguish oil layer with Bayes rule by Matlab software.

Keywords:Matlab pattern recognition bayesian discrimination oil-water layer identification

模式识别的分类问题是根据识别对象特征的观察值将其分到某个类别中去。贝叶斯(Bayes)判别法是模式识别方法中的一个基本方法。该方法通过对类别已知样本的学习,提取样本特征并建立判别函数方程,从而来实现对新样本的预测。根据决策规则的不同,贝叶斯判别法又包含最小错误率贝叶斯判别、最小风险贝叶斯判别等。最

小错误率的贝叶斯判别就是利用概率论中的贝叶斯公式,得出使错误率最小的分类规则。

Matlab集数字分析、矩阵运算、信号处理和图象处理、显示于一体,构成了一个方便灵活的、界面友好的用户环境[1]。同时Matlab 提供了大量的功能函数,这些函数的灵活运用会使研究人员避免大量重复性的劳动。对于测井方法研究和数据处理来说,由于获得的信息都是数字化的,所以应用Matlab可以很方便地解决与测井相关的问题。Matlab的出现使得测井工作者能够把更多的精力集中到专业的方法研究中。该文通过对贝叶斯判别法的原理进行剖析,提出通过Matlab软件来实现该算法,程序编制过程简单且方法运用灵活。

1 方法原理及应用

根据贝叶斯判别的基本理论,在多元正态概率分布中,基于最小错误率的贝叶斯判别函数和决策面方程由如下式子给出[2]:判别函数:

gix=-12x-μiTi-1x-μi-d2ln2π-12lnΣi+lnPωi ①

决策面方程:

gix=gj(x)②

其中x=x1,x2,……,xdT是d 维列向量。

μ=μ1,μ2,……,μdT是d维均值向量。

Σ是d×d维协方差矩阵,Σ-1是Σ的逆矩阵,Σ是Σ的行列式。

在测井方面,可以利用该公式来判别岩性、划分油水层等。以油水层识别为例,通过试油资料,我们可以获得一些已知的油水层训练样本,如

油层:X1=[GR1,SP1,……,RT1]T,X2=GR2,SP2,……,RT2T,X3=[GR3,SP3,……,RT3]T,X4=GR4,SP4,……,RT4T;

水层:X5=GR5,SP5,……,RT5T,X6=GR6,SP6,……,RT6T,X7=[GR7,SP7,……,RT7]T,X8=GR8,SP8,……,RT8T;

其中GR(自然伽马测井曲线),SP(自然电位测井曲线),……,RT(深电阻率测井曲线)等为影响油水层划分的d维关键因素,可根据油田实际状况确定;Xi(i=1,2,……,8)为已知的训练样本,本例中含有8个样本,样本分为2类。

我们首先通过样本值求得,

油层均值向量μ1=[μGR,μSP,……,μRT]T

水层均值向量μ2=[μGR´,μSP´,……,μRT´]T

以及它们各自的协方差矩阵Σ1,Σ2及其逆矩阵、行列式值。

然后,将以上求得的这些参数代入①式中,就能求得油水层的判别函数g1x、g2x。假如现在我们要判别一个样本X9=[GR9,SP9,……,RT9]T的类别,我们只需将X9的值代入g1x和g2x。如果g1x>g2x,则X9应划分为油层,反之则为水层。

例子中,只采了8个样本值。即便如此,要想通过手工运算去求解油水层的均值向量和协方差矩阵也相当困难的。在实际运用中,判别的类别数和样本数量都要更多一些,如何去求解样本均值、协方差等参数成为了一个难题。Matlab提供了解决问题的办法,因为求解这样一些参数在Matlab中很容易,可以直接调用它的库函数。

最小错误率的贝叶斯判别中还存在先验概率如何确定的问题。在井眼、地层环境和测量完全相同的情况下,测量结果具有随机性且划分为油层和水层的概率是相等的。在实际运用中,测井值才是影响判别结果的决定性因素,因此将先验概率值取相等即可。

通过以上方法和原理,在Matlab中编写了相应的贝叶斯判别程序,实现了对M油田的X1井油水层的判别处理,并与实际试油资料井进行了比对,符合率为86%,满足了实际生产的需要,可以运用推广。

2 结语

(1)Matlab具有强大的矩阵计算能力,适合运用于计算量较大的科学分析计算。

(2)可以将Matlab与模式识别原理相结合,方便高效地利用贝叶斯判别对测井数据进行判别分析,实现对油水层的预测。

参考文献

[1]朱广峰.精通Matlab 7[M].北京:清华大学出版社,2006.

[2]边肇祺,张学工.模式识别[M].2版.北京:清华大学出版社,2000.

相关文档
最新文档