朱慶忠,胡秋嘉,杜海為,樊 彬,祝 捷,張 斌,趙雨寒,劉 斌,唐 俊
(1.華北油田公司,河北 任丘 062552; 2.中國礦業(yè)大學(xué)(北京) 力學(xué)與建筑工程學(xué)院,北京 100083)
從生產(chǎn)數(shù)據(jù)中挖掘煤層氣井產(chǎn)量與排采工藝之間的內(nèi)涵關(guān)系,對于指導(dǎo)生產(chǎn)具有重要意義。煤層氣井生產(chǎn)數(shù)據(jù)具有數(shù)據(jù)量大、信息種類多等特征,生產(chǎn)參數(shù)與產(chǎn)量之間的關(guān)系復(fù)雜[1]。以煤層氣的解吸、擴散、滲流等機理為基礎(chǔ),建立煤層氣井流體流動的理論模型[2-4],并用數(shù)值模擬的方法進行產(chǎn)量預(yù)測是廣泛采用的方法。但理論分析常常需要基于假設(shè)建立模型,理論計算結(jié)果往往難以匹配不同生產(chǎn)井的數(shù)據(jù)。為此,一些學(xué)者建立了基于統(tǒng)計學(xué)的人工智能算法模型,用于預(yù)測煤層氣井的流體流動規(guī)律[5-14],取得了較好的效果,但在一些方面仍有待改進。例如,神經(jīng)網(wǎng)絡(luò)算法需要大量數(shù)據(jù)支撐,才可以保證運算的準確率;支持向量機可以彌補神經(jīng)網(wǎng)絡(luò)算法的缺陷,但經(jīng)典的支持向量機只可以進行二分類運算,而在實際的工程應(yīng)用中,往往要解決多分類問題的數(shù)據(jù)挖掘[15]。為了避免上述方法的缺陷,出現(xiàn)了一對多支持向量機、一對一支持向量機以及隨機森林等新型算法。其中,隨機森林算法具有分類速度快、改善過度擬合、有效處理高維大樣本數(shù)據(jù)、預(yù)估某個特征在分類中具有的重要性以及具有較強的抗噪音能力等特點,可以大大降低計算量,還能保持較高的精確度[15-17]。為此,筆者依托沁水盆地鄭村區(qū)塊的煤層氣井,利用隨機森林算法,對地質(zhì)參數(shù)、排采工藝參數(shù)與產(chǎn)量數(shù)據(jù)進行相關(guān)性分析,進而建立了基于隨機森林算法的煤層氣井產(chǎn)量模型。用于預(yù)測煤層氣井的日產(chǎn)氣量。
隨機森林由Breiman提出,是一種個體學(xué)習(xí)器全部為決策樹的同質(zhì)集成學(xué)習(xí)器[18]。隨機森林模型由多棵決策樹模型組成,在進行預(yù)測時,由多棵決策樹進行聯(lián)合預(yù)測,精度較高[19]。決策樹的形成來源于對已經(jīng)訓(xùn)練過的樣本集(假設(shè)共有n個樣本)進行隨機抽取k個樣本,每次隨機抽樣的結(jié)果為一棵決策樹模型Ti(X,Qk),i=1,2,…,k。其中,X為自變量,Qk為因變量。隨機森林算法具有隨機抽樣、建立多棵決策樹的特點,多棵決策樹組合形成回歸估計rn(X,Dn)為
(1)
其中,Dn為總數(shù)據(jù)集;X(X1,X2,…,Xi,…,Xk,k (2) 其中,1[·]為指標函數(shù),當(dāng)下標條件符合時1[·]=1,否則1[·]=0;Yi為在學(xué)習(xí)樣本中與Xi相對應(yīng)的因變量;An(X,Q)為一個包含X的隨機單元分區(qū);En(X,Q)為判定條件: (3) 聯(lián)立式(1)和(2)即可得到隨機森林對因變量Q的回歸估計: (4) 計算時可通過增加訓(xùn)練集Dn的數(shù)量,提高模型的預(yù)測精度[20]。當(dāng)對新的數(shù)據(jù)進行分類預(yù)測時,采用多數(shù)投票法對新數(shù)據(jù)進行最終分類的輸出,得到泛化誤差PE*為 Q)=j)<0) (5) 隨機森林算法所使用的決策樹模型是運用于分類以及回歸的一種樹結(jié)構(gòu)。決策樹由節(jié)點和有向邊組成,一棵決策樹包含一個根節(jié)點、若干內(nèi)部節(jié)點和若干葉節(jié)點。根節(jié)點包含樣本全集,內(nèi)部節(jié)點對應(yīng)于一個屬性測試,每個節(jié)點包括的樣本集合根據(jù)屬性測試的結(jié)果被劃分到子節(jié)點中。最終葉節(jié)點對應(yīng)為決策結(jié)果,根節(jié)點到每個葉節(jié)點的路徑對應(yīng)了一個判定測試路徑。 根據(jù)隨機森林算法對分類樹和回歸樹的定義[21],將分類樹、回歸樹的計算原理及流程總結(jié)如圖1,2所示。圖1分類樹的最后一層為分類標簽,其他節(jié)點可以認為是某個特征屬性。按照特征判定標準逐步進行判定,直到最后一步得到分類結(jié)果。如圖2所示的回歸樹中所有節(jié)點均為某一個待回歸屬性。按照特征判定標準逐步運行之后,即可得到回歸值。 圖1 分類樹的分類原理Fig.1 Classification principle of classification tree 隨機森林算法的回歸精度由回歸樹的誤差函數(shù)e(A)來體現(xiàn): (6) 影響煤層氣產(chǎn)能的參數(shù)包含地質(zhì)參數(shù)、工程措施和排采工藝參數(shù)。煤儲層地質(zhì)參數(shù)分為動態(tài)參數(shù)和靜態(tài)參數(shù)兩個部分。靜態(tài)地質(zhì)參數(shù)由煤層的本質(zhì)屬性決定,如:煤層埋深、煤層厚度、地應(yīng)力等;動態(tài)地質(zhì)參數(shù)在排采過程中發(fā)生動態(tài)變化,如儲層壓力、滲透率等。排采工藝參數(shù)多為動態(tài)參數(shù),主要受人為調(diào)控,如井底流壓、套壓、動液面深度、沖次、沖程等。 鄭村區(qū)塊主要開采山西組3號煤層和太原組15號煤層。以15號煤層為研究對象,煤層埋藏深度418~804 m,平均576 m,埋深呈北深南淺趨勢變化。煤厚在1.5~8.8 m,平均厚度3.7 m。平均含氣量為18.89 m3/t,屬于煤層氣富集區(qū)[22]。15號煤層煤巖類型以光亮煤為主,結(jié)構(gòu)為碎裂、原生結(jié)構(gòu)??紫兑晕⒖?、小孔為主;割理較發(fā)育,外生裂隙為煤層氣的主要滲流通道。主裂隙長度主要為0.5~6.0 cm,密度約為11~25條/(5 cm),高度為0.5~6.0 cm,裂隙連通性中等。煤儲層滲透率為0.89×10-15m2,綜合分析表明15號煤層整體滲透性差,屬于低滲儲層,煤層頂板以灰?guī)r為主,底板以泥巖為主,封閉性好[23]。 煤層氣井在選址、鉆井、水力壓裂等前期工作均已完成的前提下,排采工藝參數(shù)成為影響煤層氣井日產(chǎn)氣量的主要因素。本文的重點在于研究排采工藝參數(shù)對煤層氣井日產(chǎn)氣量的動態(tài)影響規(guī)律。常見的煤層氣井排采工藝參數(shù)包括生產(chǎn)套壓、井底流壓、動液面高度、沖次、沖程。因此在建模過程中,重點挖掘排采工藝參數(shù)與日產(chǎn)氣量的內(nèi)涵關(guān)系。選取8口15號煤層生產(chǎn)井,生產(chǎn)時間約為2 000~3 000 d,生產(chǎn)數(shù)據(jù)每日記錄1次,將每天的生產(chǎn)數(shù)據(jù)為一個樣本數(shù)據(jù)點,即每口井可以提取2 000個以上的數(shù)據(jù)樣本點。 隨機森林中有ntree棵決策樹,那么特征變量xi的重要性計算公式為 (7) Gain(xi,v)=GI(v)-wLGI(vL)-wRGI(vR) (8) (9) 以A358井為例,將套壓、流壓、動液面、沖程、沖次、煤層埋深、日產(chǎn)氣等參數(shù)與產(chǎn)量數(shù)據(jù)輸入至R語言中,使用隨機森林算法進行相關(guān)性(重要性)挖掘。將日產(chǎn)氣量作為因變量,將套壓、流壓、動液面、沖程、沖次、煤層埋深作為自變量,得到重要性指標(IncMSE與IncNodePurity)如圖3所示。圖3中IncMSE為自變量重要性,即increase in MSE(均方誤差的增量)。若特征變量xi對因變量(日產(chǎn)氣量)相關(guān)性越高,則xi的IncMSE值越大。即說明xi對因變量(日產(chǎn)氣量)越重要。IncNodePurity為節(jié)點純度的增加,節(jié)點純度表示節(jié)點對應(yīng)的樣本數(shù)據(jù)集中各類別數(shù)據(jù)所占的比例情況,若數(shù)據(jù)集中的所有數(shù)據(jù)均為同類,則數(shù)據(jù)集合為完全純潔、純度最高[24]。IncNodePurity數(shù)值代表模型精度,IncNodePurity數(shù)值越大,樣本集合的不確定性越小,模型精度越高。由圖3可知,自變量的重要性順序為:流壓>套壓>動液面>沖次>沖程>埋深。 圖3 自變量重要性與節(jié)點純度Fig.3 Parameter importance and node purity 根據(jù)以往研究成果和本文隨機森林算法得到的IncMSE與IncNodePurity,選用煤層埋深、生產(chǎn)套壓、井底流壓、動液面高度、沖次5個參數(shù)作為隨機森林模型的自變量。同一口井的煤層深度變化不大,因此煤層埋深與日產(chǎn)氣量的相關(guān)性不明顯。但是不同埋深的煤儲層應(yīng)力分布、滲透率、孔隙度差異較大,導(dǎo)致其產(chǎn)量發(fā)生變化[25-26]。對不同埋深的生產(chǎn)井?dāng)?shù)據(jù)進行機器學(xué)習(xí)時,煤層埋深的影響將會增高。 排采原始數(shù)據(jù)中常常會包含有噪聲、不完整的數(shù)據(jù),此類數(shù)據(jù)對機器學(xué)習(xí)的準確性有影響,需對數(shù)據(jù)進行預(yù)處理,包括缺失值處理和異常數(shù)據(jù)處理兩個方面。 2.3.1缺失值處理 缺失值產(chǎn)生的主要原因是:在施工過程中未測量、雖測量但未記錄。本文使用填補法補全數(shù)據(jù),補全規(guī)則如下: (1)套壓列:空缺值補充為0。套壓值空缺的原因一般為氣井投產(chǎn)早期階段煤層氣未解吸,無數(shù)據(jù)記錄,套壓為0。 (2)流壓、動液面列的數(shù)據(jù)在2014年11月之前,采用工人手動記錄,經(jīng)常每隔3~7 d才記錄1次,故數(shù)據(jù)存在較多空缺值。在早期無產(chǎn)氣時,由于排水作用,流壓、動液面呈現(xiàn)降低的趨勢,筆者將人工記錄的數(shù)據(jù)作為端點數(shù)據(jù),對空缺數(shù)據(jù)采用線性插值的方法補全。 (3)日產(chǎn)氣列空缺值補充為0。因為日產(chǎn)氣、日產(chǎn)水值空缺,一般為當(dāng)天無產(chǎn)氣、產(chǎn)水。 (4)沖次列的空缺值補充為0或借前1天數(shù)據(jù),原因:沖次數(shù)據(jù)空缺一般因為停井,所以沖次數(shù)據(jù)補為0;也有時是由于工作人員未記錄,所以采用前1天數(shù)據(jù)。 2.3.2異常數(shù)據(jù)處理 異常數(shù)據(jù)是指那些明顯偏離其他數(shù)據(jù)樣本的數(shù)據(jù)“跳點”。人為因素,設(shè)備因素以及環(huán)境因素是造成排采數(shù)據(jù)出現(xiàn)異常點的主要原因。人為因素如記錄數(shù)據(jù)錯誤、記錄缺失等。設(shè)備因素如電路故障、抽油機故障、抽油桿斷脫、卡泵等,此類因素?zé)o法預(yù)知且對煤層氣日產(chǎn)量影響大。環(huán)境因素如遭雷擊、因其他煤層氣井壓裂施工而停井、因環(huán)保問題而停井等[27]??紤]到煤層氣排采過程中不確定性因素造成產(chǎn)量異常不能用于排采規(guī)律分析,本文將此類異常數(shù)據(jù)剔除。對于人為因素造成的記錄缺失,則進行缺失值補全。 以A358井為例,異常數(shù)據(jù)預(yù)處理前后的套壓、井底流壓等參數(shù)如圖4所示。 圖4 各參數(shù)預(yù)處理前后的對比Fig.4 Comparison curves before and after processing of each parameter 隨機森林算法可以解釋若干自變量對因變量的影響。假設(shè)因變量存在n個樣本,影響因變量的自變量為f個。在隨機森林運算過程中,算法采用Bootstrap重抽樣方法,隨機抽取因變量的部分樣本值,并從f個自變量中隨機選取指定個數(shù)的變量,以此確定決策樹節(jié)點[20]。在隨機森林運算過程中,由于決策樹的構(gòu)建方法為隨機抽樣,所以算法構(gòu)建出的每棵決策樹可能互不相同,通常會隨機生成幾百甚至幾千棵決策樹。算法會從中選擇重復(fù)度最高的決策樹作為最終的運算結(jié)果。由決策樹T構(gòu)成組合模型,通過求ntree棵決策樹的平均值形成隨機森林模型的預(yù)測值。 以A358井為例,按如下步驟建立煤層氣產(chǎn)量模型: (1)運用Bootstrap法則,從2 440條生產(chǎn)數(shù)據(jù)中重復(fù)抽取數(shù)據(jù),產(chǎn)生機器學(xué)習(xí)數(shù)據(jù)集,據(jù)此構(gòu)建關(guān)于日產(chǎn)氣量的回歸樹。而每次抽取學(xué)習(xí)部分的數(shù)據(jù)時,未被抽取的數(shù)據(jù)作為袋外數(shù)據(jù),組成對日產(chǎn)氣量的測試數(shù)據(jù)集。 (2)構(gòu)建日產(chǎn)氣量回歸樹時,在每棵樹的分節(jié)點處從5個自變量:儲層埋深、生產(chǎn)套壓、井底流壓、動液面高度、沖次中隨機選取mtry種數(shù)據(jù)作為備選分枝變量,然后根據(jù)分枝優(yōu)度準則在其中確定最優(yōu)分枝。 (3)生成ntree棵日產(chǎn)氣回歸樹,對煤層氣井歷史產(chǎn)氣量進行擬合分析,建立了基于隨機森林算法的煤層氣井產(chǎn)氣量模型(建模流程如圖5所示),擬合效果通過袋外數(shù)據(jù)預(yù)測的準確度來評價。 圖5 基于隨機森林算法的煤層氣產(chǎn)量模型的建模和計算流程Fig.5 Modeling and calculation process of CBM production model based on random forest algorithm 在隨機森林算法建模過程中需要確定2個重要參數(shù):mtry與ntree。mtry為樹節(jié)點在預(yù)選時,所用的變量個數(shù),若此數(shù)值太小會導(dǎo)致隨機森林算法過于擬合,致使算法精度降低,太大會導(dǎo)致模型計算速度降低。ntree太小會導(dǎo)致訓(xùn)練不充分,太大會增加模型的運算量。在R程序中,一般的隨機森林算法默認為mtry=1,ntree=500。為了提高計算精度,需要優(yōu)先確定最優(yōu)的mtry,ntree的數(shù)值。 mtry選定的依據(jù)為:當(dāng)隨機森林算法模型計算得出的殘余誤差平方的均值越小、擬合優(yōu)度越高時,此mtry數(shù)值為最優(yōu)數(shù)值。表1顯示了A358井?dāng)?shù)據(jù)使用隨機森林算法,通過嘗試不同的mtry值,進行殘差平方均值與擬合優(yōu)度計算。本模型中mtry的最優(yōu)數(shù)值為3。 mtry數(shù)值確定后,再確定ntree的數(shù)值。設(shè)置ntree數(shù)量為1 000,A358井?dāng)?shù)據(jù)經(jīng)過模型計算,得到模型誤差與ntree的關(guān)系如圖6所示。ntree的值越大,模型計算誤差越小,當(dāng)ntree>200,模型計算誤差接近下界。依據(jù)ntree的數(shù)量不可過大或過小,且計算誤差需要平穩(wěn)較低的原則,故本模型中ntree的數(shù)值選定為400。 表1 殘差平方的均值與擬合優(yōu)度Table 1 Mean of squared residuals and var explained 圖6 模型殘差平方的均值與構(gòu)建決策樹數(shù)量Fig.6 Mean value of model residuals squared and the number of constructed decision trees 通過R語言中predict()函數(shù),使用所建立的randomForest.model,帶入作為模型自變量的排采工藝參數(shù)數(shù)據(jù),即可進行對歷史日產(chǎn)氣量的擬合。 計算得到A358煤層氣井的日產(chǎn)氣量如圖7所示。通過對比模型計算值與實際日產(chǎn)氣量值,2 440個計算樣本的平均誤差為3.33%,其中84.3%的樣本數(shù)據(jù)誤差低于5%,可見本文基于隨機森林算法建立的煤層氣產(chǎn)量模型對實際生產(chǎn)數(shù)據(jù)的回歸效果很好。 圖7 A358煤層氣井日產(chǎn)氣模型計算值與實際產(chǎn)量對比Fig.7 Comparison of actual daily gas value and calculated value 基于隨機森林算法建立的煤層氣產(chǎn)量模型,還可用于預(yù)測煤層氣井未來的日產(chǎn)氣量。將煤層埋深、生產(chǎn)套壓、井底流壓、動液面深度、沖次等自變量數(shù)值輸入模型,計算得到A358井未來60 d的產(chǎn)氣量。由表2可知:模型的預(yù)測值與實際產(chǎn)量的相對誤差平均為2.19%;較高誤差出現(xiàn)在第9天,為17.51%,95%的預(yù)測值與實際產(chǎn)量的誤差小于5%。 表2 實際產(chǎn)氣量與預(yù)測產(chǎn)氣量Table 2 Actual gas production and predicted gas production 除了A358煤層氣井之外,本文對15號煤層的其他煤層氣井(A345,A378,A339,A359,A374,A337,A354)也進行了日產(chǎn)氣量的預(yù)測,以便進一步驗證模型的適用性。煤層氣井目標儲層均為15號煤層,但產(chǎn)氣量存在顯著的差異。依據(jù)煤層氣井日產(chǎn)氣量的分類標準[28],表3中A339,A374井為高產(chǎn)井,A358,A345,A378,A359, A354井為中產(chǎn)井,A337井為低產(chǎn)井。 依據(jù)隨機森林構(gòu)建流程(圖5),8口井模型計算的日產(chǎn)氣量結(jié)果見表3。分析發(fā)現(xiàn),A337井的降套壓規(guī)律與其余7口井有差異。8口煤層氣井見氣之后,套壓均呈現(xiàn)下降趨勢。其中:A337井的套壓下降過程中還伴隨著反復(fù)的上下波動;A337和A345井的井底流壓下降趨勢為階梯型;其余井的下降趨勢為連續(xù)型。A337,A345井的產(chǎn)量低于其余井??梢娋琢鲏汉吞讐旱目刂茖γ簩託饩a(chǎn)量影響較大,這與文獻[29]的結(jié)論是一致的。 表3 煤層氣產(chǎn)量模型預(yù)測值與實際產(chǎn)量Table 3 Predicted value of CBM production model and actual production 本文模型對15號煤層的不同產(chǎn)能煤層氣井進行了60 d范圍的日產(chǎn)氣量預(yù)測,并將預(yù)測值與實際產(chǎn)氣量進行了對比。對比表3中的相關(guān)數(shù)據(jù),發(fā)現(xiàn)本文模型計算得到產(chǎn)量預(yù)測值中95%的計算值與實際產(chǎn)量的誤差低于10%。由此可見在掌握煤層氣井地質(zhì)條件和生產(chǎn)數(shù)據(jù)的條件下,利用隨機森林算法建立的煤層氣產(chǎn)量模型,可實現(xiàn)對煤層氣井產(chǎn)能的合理評價和預(yù)測。 基于氣水兩相流的理論模型,CLARKSON C R 和SEIDLE J 對煤層氣井產(chǎn)量進行了預(yù)測[2-3],其中CLARKSON C R將模型預(yù)測的煤層氣井產(chǎn)量與實際產(chǎn)量進行了對比[2],如圖8所示,該模型研究了井底流壓下降對產(chǎn)量的影響,計算結(jié)果反映了排采過程中日產(chǎn)氣量和日產(chǎn)水量的變化趨勢。 圖8 CLARKSON C R的模型結(jié)果與實際產(chǎn)量對比Fig.8 Comparison of numerical simulation and actual yield in the model of CLARKSON C R 與以往模型不同,本文利用隨機森林算法計算分析了地質(zhì)參數(shù)和常見的排采工藝參數(shù)(井底流壓、套壓、動液面高度、沖次、沖程等)的重要性指標,在此基礎(chǔ)上回歸得到了基于隨機森林算法的煤層氣產(chǎn)量模型。模型綜合考慮了多項排采工藝參數(shù)和歷史產(chǎn)氣量的動態(tài)變化對煤層氣井當(dāng)前日產(chǎn)氣量的影響,具有較高的擬合及預(yù)測精度,為現(xiàn)有煤層氣井的產(chǎn)能評估和預(yù)測提供了借鑒。 (1)對沁水盆地鄭村區(qū)塊太原組15號煤層的煤層氣井地質(zhì)參數(shù)、生產(chǎn)數(shù)據(jù)與產(chǎn)量數(shù)據(jù)的內(nèi)涵關(guān)系進行了數(shù)據(jù)挖掘,計算得到了地質(zhì)參數(shù)和排采工藝參數(shù)對產(chǎn)氣量影響的重要性指標。研究顯示井底流壓和生產(chǎn)套壓的變化對煤層氣井產(chǎn)氣量的影響較大。 (2)模型綜合考慮了多個排采工藝參數(shù)和歷史產(chǎn)氣量的動態(tài)變化對煤層氣井后續(xù)日產(chǎn)氣量的影響,依據(jù)隨機森林算法的分枝優(yōu)度準則,可計算得到不同排采方案下的煤層氣井日產(chǎn)氣量,為現(xiàn)有煤層氣井的產(chǎn)能評估和預(yù)測提供了一種新的方法。 (3)利用隨機森林算法的煤層氣產(chǎn)量模型,計算得到了沁水盆地鄭村區(qū)塊8口不同產(chǎn)能類型的煤層氣井日產(chǎn)氣量,模型擬合及預(yù)測精度較好,日產(chǎn)氣量預(yù)測值中95%以上的數(shù)據(jù)與實際產(chǎn)量數(shù)據(jù)(測試樣本)的誤差小于5%。因此基于隨機森林算法的煤層氣產(chǎn)量模型具有較高的擬合及預(yù)測精度。2 排采工藝參數(shù)分析與歷史產(chǎn)量擬合
2.1 模型主要參數(shù)
2.2 排采工藝參數(shù)的重要性分析
2.3 排采數(shù)據(jù)預(yù)處理
2.4 煤層氣歷史產(chǎn)量的擬合分析
3 基于隨機森林算法的日產(chǎn)氣量預(yù)測
4 結(jié) 論