宋秋強 黃若坤 楊超超 王英偉
摘 要:Matlab軟件平臺為用戶提供了強大的科學計算與可視化功能,具有簡單、易用的用戶環境,尤其適合矩陣數據的計算處理。根據Matlab的特點,將其與模式識別原理結合起來,以油水層識別為例,求解基于多元正態概率模型下的最小錯誤率貝葉斯判別函數和決策面方程。
關鍵詞:Matlab 模式識別 貝葉斯判別 油水層識別
中圖分類號:TP391.41 文獻標識碼:A 文章編號:1674-098X(2013)02(c)-00-01
模式識別的分類問題是根據識別對象特征的觀察值將其分到某個類別中去。貝葉斯(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.