李曉春, 張 生
(1. 上海市青浦區河道水閘管理所,上海 201799;2. 上海理工大學 光電信息與計算機工程學院,上海 200093)
水閘泵站遠程監測系統主要用于對區域內河道水位、水質等參數以及水泵、水閘等設備的運行情況進行實時監測,記錄數據并形成歷史數據庫,以確保水閘泵站的安全運行并準確預測可能發生的水災[1]。當前對于水災以及水閘泵站安全預測預警方面的研究大多采用單測點模型,例如文獻[2]基于我國山洪災害雨量預警的需求,介紹了采用分布式水文模型分析臨界雨量的基本思路與方法。文獻[3]以南京三汊河閘門失穩風險為例,采用故障樹法對閘門失穩事故進行分析。文獻[4]以某近海軟基攔河閘變形監測資料為基礎,建立基于變形監測數據的近海軟基水閘水平位移監控指標擬定方法。文獻[5]結合風險分析對水閘安全監測項目的設置和測點布置等進行了研究。以上采用單測點模型的研究雖然可以在一定程度上對水災或水閘泵站的安全進行預測預警,但實際上導致水災以及影響水閘泵站安全方面的因素往往不止一個,水閘內外水位高低、雨量大小等都是影響水閘泵站安全的重要因素,在多因素影響環境中只考慮單因素而得到的規律有一定的應用局限性。考慮多影響因素則需要更多的監測信息,水閘泵站遠程監測系統實時獲取的數據是對水閘泵站安全預警的重要依據,如何分析和使用這些數據是準確預警的關鍵。針對水閘泵站遠程監測數據庫中的大量數據,關聯規則挖掘方法能夠提取指標屬性間的關聯規則,是數據分析的有效方法。文獻[6]提出了基于關聯規則挖掘的電力生產安全事故事件關鍵誘因篩選分析方法。文獻[7]提出改進的FP-Growth算法挖掘隧道交通事故關聯規則。文獻[8]使用時間序列規則挖掘算法建立交通擁堵傳導規律模型,提高交通效率。文獻[9]提出了一種基于關聯規則分析的電力變壓器故障馬爾科夫預測模型,使用Apriori算法挖掘狀態參量與狀態之間的關聯規則以及各狀態之間的關聯規則。以上研究算法均采用關聯規則挖掘算法輔助決策,其中Apriori算法是關聯規則挖掘的常用方法。
本文采用Apriori算法提取監測數據的關聯規則,為水閘泵站的安全預警提供依據。采用Apriori算法提取規則的問題之一是多次掃描龐大的數據庫而造成的時間成本較高,本文采用二進制的方式存儲數據。基于加權二進制的Apriori算法既能節約存儲空間,又能通過二進制的“與運算”得到頻繁項集,降低時間成本。為解決數據挖掘過程中監測數據實時更新的問題,采用基于增量更新的Apriori算法提取潛在規則,即利用水閘站中的閘內外水位、雨量和流量數據,引入動態更新方法對原有規則進行更新,通過對比規則對可能發生的水災作出及時、準確的預測。
在實際情況中,水閘泵站的監測數據往往具有連續屬性,數據挖掘算法無法直接處理這些數據,需要將連續屬性進行離散化處理。常見的連續數據離散化方法如等距離劃分方法、布爾邏輯和粗糙集理論結合的離散化算法等主觀性較強,且在本質上是對屬性空間的硬劃分。文獻[10]將云理論引入數據挖掘領域,提出了一種基于云理論的屬性空間軟劃分方法,并將其用于煤礦安全監測數據關聯規則的挖掘。本文采用云模型對連續數據進行離散化處理,該方法不僅克服了劃分區間過硬的問題,還考慮了劃分過程的不確定性。
本文提出了云模型和改進Apriori算法相結合的水閘泵站遠程監測數據挖掘分析方法。首先利用云模型將具有連續屬性的監測數據進行離散化處理,得到相應的定性概念語言值;然后利用水閘泵站中的閘內外水位、雨量和流量數據,通過采用改進的Apriori算法挖掘水閘泵站安全規則;針對不斷更新的動態數據庫,引入動態更新方法對原有規則進行更新,從而為水閘泵站提供比較好的安全策略。
云模型由李德毅院士首次提出,是一種用語言值描述某定性概念與其數值表示間不確定轉換的模型[11]。
定義1[11]云和云滴:設U是一個普通集合。U={xi,i=1,2,···,n},稱為論域。設 T 為與集合 U 相聯系的定性語言值,xi對于T所表達的定性概念的隸屬度為μ(xi)是一個具有穩定傾向的隨機數,其取值為[0,1],則稱xi在論域U上的分布為隸屬云,簡稱云。其中,每一個確定值和它的隸屬度組成的數據對(xi, μ(xi))稱為一個云滴。
云模型的數字特征用期望值Ex、熵En和超熵He這3個數值來表征,記作向量C (Ex, En,He),稱為云模型的特征向量,它構成了定性與定量的相互映射,把模糊性和隨機性集成到了一起。
期望值Ex:即論域中定性概念的信息中心值。
熵En:即不確定性的度量,反映在論域中能夠被該定性概念所接受的范圍。熵越大,定性概念越模糊,隨機性也越大。
超熵He:即En的熵,是熵的不確定性的度量,間接反映了云的“厚度”。超熵越大,云滴離散度越大,“厚度”也越大。
云發生器(cloud generator,CG)即通過軟件實現或固化硬件實現的云的生成算法。云可以根據不同條件和不同輸入輸出變量生成,于是存在不同的云發生器,本文運用逆向云發生器進行屬性空間軟劃分,運用X條件云發生器進行數據語言值轉換。
由定性概念值到定量數值的過程,即從數字特征到云滴的轉換過程,稱為正向云發生器;則逆向云發生器就是由定量表示到定性概念的過程,即從云滴轉化到數字特征的過程,如圖1所示。

圖1 逆向云發生器示意圖Fig.1 Schematic diagram of a backward cloud generator
在給定論域中特定數值x的條件下,云發生器稱為X條件云發生器[12],如果給定云的3個數字特征(Ex,En,He)和論域上的特定值x,利用X條件云發生器則可以得到與特征向量個數相對應的n個隸屬度數值,如圖2所示。

圖2 X條件發生器示意圖Fig.2 Schematic diagram of a X condition generator

云模型和云發生器能夠實現定量數據與定性數據之間的相互轉換,通過定量到定性的轉換過程能夠將原始的監測數據離散化,從而將離散化后的數據用于后續的Apriori算法,達到挖掘關聯規則的目的。
本文挖掘關聯規則所使用的Apriori算法,其適用的數據類型為離散型數據,但水閘泵站的監測數據為連續型,因此需要對原始監測數據進行處理。通過分析水閘泵站的監測數據和指標,可以建立屬性空間。本文采用基于云模型的屬性空間軟劃分方法[12],通過對數據歸納分析,將數字特征值與定性語言值對應起來,即可從數據中產生概念,定量的數據就可以表達成定性的語言概念以實現連續監測數據的離散化。
設水閘泵站監測數據的關聯規則由m個條件屬性和1個決策屬性組成,則空間矢量數據p={p1,p2, ···,pm,pm+1}就是一條包含(m+1)個屬性的歷史監測數據,n條監測數據記錄可以表示為矢量域P={p1,p2, ···,pn}。
若 集 合{C1,C2,···,Cm,Cm+1}為P的 非 空 子 集 ,Ci={C1,C2,···,Cl}為任一屬性的數字特征集合,其中任意一個數字特征可能對應z個該屬性的基礎數據,且,都有,為P的一個劃分。
本文以生成3個云(l=3)為例,選取{好,中,差}3個語言值,對水閘泵站監測數據屬性空間進行軟劃分,方法如下:
根據水閘泵站的歷史檢測數據,利用1.3中的逆向云發生器算法得到屬性的數字特征C(Ex,En,He)。由于本文選取云的數量為3,設中間云的特征值為C2(Ex2,En2,He2),則兩側云的特征值為C1(Ex1,En1,He1),C3(Ex3,En3,He3),其計算公式如下:

式中,v為根據實際情況選取的權值。
對監測數據屬性空間進行劃分后,還需要將數據映射到對應的定性概念中。本文中任意一個屬 性對 應 的 概 念集 為Ci={C1(Ex1,En1,He1),C2(Ex2,En2,He2),C3(Ex3,En3,He3)},與之對應的語言值集合為{好,中,差}。利用1.3中的X條件云發生器可以計算屬性值x對概念集Ci中概念的隸屬度值,記為μi={μ1,μ2,μ3}。比較隸屬度大小,選取最大的隸屬度對應的語言值作為屬性值x的最終表現值。例如,若μ2>μ1>μ3,則x對應的概念為C2(Ex2,En2,He2),則語言表現值為“中”。
通過上述步驟,將水閘泵站監測數據屬性空間進行軟劃分后,將歷史監測數據變成了對應語言值,進而可以利用對應的語言值得到最終的關聯規則。
為了確保水閘泵站安全經濟地運行,本文采用Apriori關聯規則方法對水閘、水泵等設備的運行數據進行挖掘,即從運行數據中提取關聯規則,從而對可能發生的水災作出及時、準確的預測。水閘泵站監測數據庫中數據量龐大,且采用Apriori算法提取關聯規則需要多次掃描數據庫,時間成本高。本文采用二進制的存儲方式來存儲數據,該方法能節省空間,且其采用矩陣乘積形式篩選頻繁項集可以降低掃描數據集的次數,從而降低時間成本。考慮到數據是在動態更新的,采用傳統Apriori算法需要對更新后的所有數據進行挖掘,耗時較多。為此本文采用基于增量更新的改進Apriori算法挖掘監測數據庫中的潛在安全規則,從而為水閘泵站可能發生的危害做好預防措施。現將關聯規則的相關定義進行介紹。
關聯規則挖掘作為數據挖掘中的重要方法,通過提取指標屬性間的關聯規則對數據進行分析。Apriori算法是關聯規則挖掘的常用方法,主要通過篩選頻繁項集和候選項集得到支持度和置信度,從而作為水閘安全規則的提取依據。P表示整個水閘泵的數據庫,其中Tid={t1,t2,t3,···,tq}為監測記錄的集合,ti(i=1,2,3,···,q)表示P中的每條行記錄,且tiP。傳統Apriori算法的主要概念如下。
定義1頻繁項集
給定一個項集P,通過項集間的多次篩選獲得候選項集Lk,若項集Lk的支持度大于或等于最小支持度,記作minsup,則稱項集Lk為頻繁項集,也稱為頻繁模式。
定義2Apriori-gen函數
通過Apriori-gen函數生成頻繁k項集的操作過程包含兩個步驟:連接和剪枝。將(k-1)個項集兩兩連接,得到候選項集Ck;對候選項集進行刪減,除去一個不屬于Lk-1的(k-1)個子集。
定義3強關聯規則
設最小置信度為minconf,當頻繁k項集的支持度 sup(P)≥minsup,置信度 conf(P)≥minconf,即頻繁k項集為強關聯規則。
當提取了關聯規則后,會存在規則冗余或者沖突,需要進行處理。如果規則庫中兩個強關聯規則r1和r2中的元素相互包含,若,則r2是一個冗余規則,需要刪除。如果r1和r2中的元素包含性以及規則優先性相互矛盾,則規則r1和r2沖突,需要刪除優先度低的規則。
針對Apriori算法執行過程中,需要多次掃描項目集、時間成本高且效率低的問題,本文提出采用加權二進制的關聯規則挖掘方法。針對數據集的冗余性比較高,為降低頻繁項集的效率,本文給出權重定義,即重復數據只顯示一次,將重復次數與全部記錄數的比值作為權重,記作w,如式(2)所示。

本文所提基于加權二進制的Apriori算法步驟如下:
步驟1對數據庫P進行掃描,項目在數據庫中的顯示與否設置為“1”或者“0”,將重復出現的行記錄只存儲一次,重復次數的比值權重設置為w,并將行數與w的乘積結果存儲到最后一列,得到候選集C1,依據原先設定的最小閾值,篩選出頻繁項集L1。
步驟2將L1看做向量L1進行自乘,通過“與運算”連接,得出C2候選項集,掃描P得出L2,以此類推迭代。
步驟3掃描數據庫k次后,且LkLk=Ck+1,即Ck+1為自乘的結果,當Ck+1=,停止數據庫掃描。
步驟4獲得最大頻繁集Lk。
Apriori算法雖然能夠幫助解決規則提取的問題,但是,隨著數據的不斷增長,水閘泵站中的數據不斷更新。采用Apriori算法挖掘更新后的數據耗時多、效率低,因此,本文采用Apriori算法的增量更新方式來獲取頻繁項集,無需對所有數據進行更新,可以降低時間成本,具體的方法描述如下。
本文水閘泵站的數據集設為P,新增數據集為p,則新數據集為(P+p)。采用Apriori算法可以獲取原始數據的頻繁項集L(P),針對更新后的數據集,本文采用改進的加權二進制Apriori算法,相關定義如下:
a. 對于原始數據集形成頻繁項集為L(P),新增數據集的頻繁項集為L(p),依據某項集d在P和p中為頻繁項集,在(P+p)中也為頻繁項集,找出在P和p中相同的頻繁項集,放入(P+p)的頻繁項集L(P+p)中。
b. 當項集d∈L(p)且dL(P)時,掃描數據集P得到支持度supportP,再在p中求出supportp,以及求出d在(P+p)中的supportP+p,如式(3)所示,若supportP+p≥minsup,則將d作為頻繁項集L(P+p)中的一部分,反之不是頻繁項集。

c. 當項集d∈L(P)且dL(p)時,掃描數據集p得到支持度supportP,再在P中求出supportp以及求出d在(P+p)中的supportP+p,如式(4)所示,若supportP+p≥minsup, 則 將d作 為 頻 繁 項 集L(P+p)中的一部分,反之不是頻繁項集。

d. 若項集d在P中為非頻繁項集,在p中也為非頻繁項集,那項目集在(P+p)中也為非頻繁項集。
基于以上相關概念,本文所提Aprioir算法的增量更新步驟如下。
輸入水閘站監測原始數據集P,新增數據集p,最小閾值設定為minsup。
步驟1對于某項集d而言,d∈L(P),如果g0gggggg=L(P+p),刪除與L(p)相同的頻繁項集,一直循環,直到得到既屬于P也屬于p的頻繁項集d。
步驟2當d∈L(P),如果有事務集s∈p且ds,將d出現的次數累加為count。
步驟3當count≥minsup,將數據集d添加到頻繁項集L(P+p)當中,重復步驟2,直到掃描結束,得到最終的頻繁項集。
步驟4根據頻繁項集提出數據的安全規則的指標,即支持度和置信度,來驗證水閘站的安全性。
某市地勢低平,水力比較平緩,同時河道中有大量聚集沉淀的污染物,當大暴雨突然襲擊時,由于城市里多余的水量很難及時排出而常常形成水澇。水澇危害市內居民安全且會造成大量財產損失,因此需要對當地水閘泵站的遠程監測數據進行分析,從而對水災進行準確的預測預警。在預測預警過程中,僅僅依靠系統監測到的閘內外水位、雨量、流量和水閘位數據并不能滿足要求,還需要根據已有的數據對潛在的安全規則進行挖掘,以便對水災進行準確的預測預警。結合某市水務局的水務監測數據和該市某水閘泵站的水閘位等記錄數據,利用本文的方法對安全規則進行挖掘。其中水閘泵站監測的部分監測記錄基礎數據如表1所示。

表 1 水閘泵站監測基礎數據Tab.1 Monitoring data of the sluice pumping station
利用基于云模型的屬性空間軟劃分方法對表1中的監測數據集進行屬性空間軟劃分。將監測的各項屬性均看作一維語言變量,對于雨量和流量屬性,定義小、中、大3個語言值;對于內外河水位及水閘位,定義低、中、高3個語言值。
以內河水位為例,對表1中數據調用逆向云算法,計算得到反映內河水位的數字特征為Ex=2.696,En=0.264,He=0.118,對應語言值為“中”。取權重v=1,則與語言值“高”對應的數字特征為Ex3=2.959,En3=0.377,He3=0.349,與“低”對應的數字特征為Ex1=2.433,En1=0.359,He1=0.330。
對表1中的初始數據進行軟劃分后,使用X條件云發生器計算隸屬度并根據隸屬度進行排序,得到如表2所示的數據。以內河數據中“3.02”為例,計算得到隸屬于3個概念的隸屬度分別為:0.19,0.03,0.95。可以得到結論:該值隸屬于“內河水位高”這一概念的程度最大。將該結論記錄到結果數據庫中,該條記錄在數據庫中應為“內河水位=高”。

表 2 經過軟劃分的數據表Tab.2 Soft partitioned data
針對表2中的數據,采用改進的Apriori算法挖掘潛在關聯規則。設置支持度為10%,置信度為50%,得出關聯規則如表3所示。
從表3中規則可以得知,當內河水位高,雨量大且流量小,則得出外河水位低且水閘位低的支持度和置信度比較大,而外河水位低以及水閘位高的支持度和置信度較低。由此得出,當內外河水位差較大,雨量大且水流慢時,若水閘位較低,可以降低水災的危險性。當內河水位低,雨量和流量中等時,得出外河水位高低以及水閘位高低的支持度和置信度較大,可以推出水閘位與內外河水位,雨量流量密切相關,此時雨量和流量大小直接影響水位、水閘位高度大小,與水庫安全性有著直接關系。當內河水位較低,雨量和流量處于中等程度時,水閘位較低的置信度較高,水閘位高的置信度較低,說明水閘泵站的閘高度未拉開太大,才能預防水閘可能產生隱患的危險性。
本文針對水閘泵站監測預警的影響因素多、數據龐大的特點,提出了基于云模型的水閘泵站遠程監測數據挖掘分析方法,特點如下:
a. 基于云模型的屬性空間軟劃分方法處理水閘泵站監測數據,將數值數據轉化為數據挖掘算法可用的定性概念語言值。
b. 利用二進制存儲監測數據值,并通過“與運算”獲取頻繁項集。考慮到數據是不斷更新的,采用基于增量更新的Apriori算法挖掘水閘泵站指標的規則,分析規則后的隱含意義,從而為水閘泵站可能的隱患給出預測和預警。
通過對某市水閘泵站的監測數據進行挖掘分析后得出關聯規則,驗證了所提方法的可行性和有效性。后續研究考慮將基于云模型的屬性空間軟劃分方法與水閘泵站智能監測系統結合起來對實時監測數據進行轉換,以呈現更直觀具體的水閘泵站安全情況。