楊潤佳,劉澤三
1. 國家能源集團,秦皇島發(fā)電有限責任公司,發(fā)展策劃處,河北 秦皇島 066000
2. 國網(wǎng)信息通信產(chǎn)業(yè)集團信通研究院,北京 100000
在工業(yè)生產(chǎn)過程中,報警系統(tǒng)具有至關(guān)重要的作用,其建立的目的是提高生產(chǎn)的安全性。但由于分布式控制系統(tǒng)(Distributed Control System,DCS)、實時監(jiān)測系統(tǒng)等實時數(shù)據(jù)采集系統(tǒng)的建立,導致隨著實時監(jiān)測數(shù)據(jù)量的急劇上升,報警數(shù)據(jù)量也隨之大幅度攀升,進而造成無效報警過多,報警數(shù)據(jù)泛濫,使得系統(tǒng)操作員工作負擔不降反升[1]。文獻[2]給出的國際標準是操作員每10 分鐘接受的平均報警數(shù)不超過1 次,異常工況下10 分鐘內(nèi)的報警數(shù)不超過10 次。而對于一個普通的火力發(fā)電廠動輒則是兩萬多的監(jiān)測點,報警數(shù)量非常龐大。若要提高安全性,除了增加操作員數(shù)量外,依托大數(shù)據(jù)技術(shù),建立報警間相關(guān)性,減少無效報警,不失為一條有效途徑。
Izadi 等[3]提出了報警系統(tǒng)分析、設(shè)計、管理的標準與方法,指出合理的報警系統(tǒng)應在漏報率、誤報率、報警延遲等指標中做出平衡。Rothenberg[4]指出相關(guān)報警應該進行區(qū)別分析,為此可將報警分為序列報警與非序列報警較為合理。而對于報警的相關(guān)性分析有利于剔除無關(guān)報警,使得系統(tǒng)更加簡潔、有效地展示報警信息,同時有助于操作員在此基礎(chǔ)上分析報警原因,進行異常工況預測。Choi 等[5]則提出了一種針對二元序列的相似度計算方法,并指出可以利用凝聚層次聚類算法對報警數(shù)據(jù)進行分組。凝聚層次算法中最為關(guān)鍵的是相似度算法,因此有的研究者對現(xiàn)有的相似度函數(shù)進行總結(jié)歸納,提出了各種針對相似度函數(shù)性能的不同的評價標準[6-8],并指出可以使用互相關(guān)函數(shù)算法作為計算報警相似度的度量方法[9]。報警聚類是報警相關(guān)性分析的前提。有了報警類,才能分析報警類之間的相關(guān)性。在報警相關(guān)性度量方面,文獻[10,12]都提出了一種針對非規(guī)整報警的相關(guān)性的量化分析方法——以概率形式表示相關(guān)性大小。
近年來,由于信息技術(shù),尤其是大數(shù)據(jù)技術(shù)的發(fā)展,不同學者針對在不同領(lǐng)域的報警之間缺乏聯(lián)系,容易引發(fā)次生災害的問題,分別提出了各種基于數(shù)據(jù)分析的報警間關(guān)聯(lián)關(guān)系的數(shù)據(jù)挖掘算法。該研究方法已經(jīng)成為了近年來報警研究的重點內(nèi)容之一,很值得進一步深入研究[6,12-17]。
但是,我們研究發(fā)現(xiàn),現(xiàn)有的方法幾乎都是將報警數(shù)據(jù)做分類假定,之后研究出針對假定條件的分析相關(guān)性的方法。比如,假定研究的報警數(shù)據(jù)是規(guī)整報警,或者假定報警數(shù)據(jù)是非規(guī)整報警,又或者假定報警數(shù)據(jù)是序列報警,或只針對非序列報警。而現(xiàn)實情況下,我們很難預先得知所研究的系統(tǒng)報警數(shù)據(jù)到底屬于哪一類,是否符合假定條件。文獻[10]針對報警問題指出:報警類之間的影響是有方向性的,或者說相關(guān)性應該是有矢量關(guān)系。比如,現(xiàn)實中A 類報警的發(fā)生會導致B 類報警的發(fā)生,即報警A 和報警B 之間在時間維度上存在著嚴格的“先后”關(guān)聯(lián)關(guān)系。A 類報警與B 類報警之間有相關(guān)性,但是B 類報警的發(fā)生不一定是A 類報警引起的,也可能是其它條件觸發(fā)的,因此A 類報警對B 類報警的影響未必等同于B 類報警對A 類報警的影響。
為了研究類似于上述的兩個報警類在時間維度上的關(guān)聯(lián)關(guān)系,本文在改進后的傳統(tǒng)凝聚層聚類算法的基礎(chǔ)上,完成報警聚類;利用大數(shù)據(jù)分析方法,提出了一種不需對報警數(shù)據(jù)做類別假定的相關(guān)性量化分析算法,并在時間維度上定義了報警的矢量性,全面挖掘并展示報警的相關(guān)性。最后,利用某電廠的實際數(shù)據(jù)進行測試,證明該方法行之有效。
在實際工業(yè)生產(chǎn)中,每個測點會設(shè)置不同的報警上下限閾值,當點位實際測得的值超過設(shè)置的閾值時,就會產(chǎn)生相應報警數(shù)據(jù)。因此,報警數(shù)據(jù)與測點設(shè)置的閾值有關(guān)。
一般情況下,隨著工業(yè)系統(tǒng)的投運,報警數(shù)據(jù)會隨著工業(yè)系統(tǒng)運行而累積,報警數(shù)據(jù)量十分龐大。
工業(yè)報警數(shù)據(jù)具有如下特點:
(1) 工業(yè)系統(tǒng)具有相對的獨立性和完整性。一般情況下,工業(yè)系統(tǒng)追求穩(wěn)定,一段時間內(nèi)不會發(fā)生較大的實質(zhì)性變化,因此報警數(shù)據(jù)可認為是該段時間內(nèi)工業(yè)系統(tǒng)在某些特性方面的反應。
(2) 報警數(shù)據(jù)量龐大。隨著系統(tǒng)的投運,系統(tǒng)會累積大量報警數(shù)據(jù),而且運行越久,數(shù)據(jù)量越大。
(3) 報警的發(fā)生具有一定的隨機性。報警數(shù)據(jù)在時間上是不定期出現(xiàn)的,具有隨機性。對于那些定期發(fā)生的報警,是極其罕見的。如果報警真的是定期出現(xiàn),那么該報警肯定會被操作員覺察,進而消除。即使限于條件,未能消除,也會有充足的時間做好預警。因此,此類報警研究價值十分有限。
(4) 對于一個相對穩(wěn)定運行的工業(yè)系統(tǒng),報警類型是有限的,即報警數(shù)據(jù)所反應的報警類型具有有限性。可按報警的屬性(測點、報警類型等)進行類別劃分,或按某種聚類算法進行聚類,可得到有限數(shù)量的報警類型。
當然,隨著系統(tǒng)的投運,投運設(shè)備的更新,新類型的報警會產(chǎn)生,此時需要重新進行聚類。
報警聚類是進行報警相關(guān)性分析的前提,只有建立報警分類后,才能對報警類之間的相關(guān)性做進一步的分析。
凝聚層次聚類算法,是一種相對簡單且有效的分類算法。利用該算法針對工業(yè)報警特性進行改進,進而得到有研究價值的報警類,是可行的。
首先,我們需要分析下工業(yè)報警在時間維度上的序列特點。
1.2.1 報警狀態(tài)序列
圖1 過程變量及報警閾值Fig.1 Process variable and the alarm trip points
圖1 是一個典型的工業(yè)測點報警示意圖。用“0”表示正常狀態(tài),“1”表示報警狀態(tài)(包括高報警限與低報警限)。以超出上限為例,報警序列為高報警閾值為則報警序列可表示為:
為了規(guī)避連續(xù)重復報警現(xiàn)象(誤報的一種),需將報警由正常變?yōu)槌薜臅r刻記為“1”,其余均記為“0”。
序列化可得到測點的報警狀態(tài),并使之數(shù)量化,為后續(xù)聚類做好準備。這種序列化可以很好地對不同測點的不同狀態(tài)做出識別,但是并沒有對同一測點的報警類型做進一步區(qū)分,比如即使是同一個測點,低報和高報是不同的,而且這種不同對與該測點相關(guān)的其它測點產(chǎn)生的影響也是不同的,很可能影響我們要研究的報警相關(guān)性。因此,需要在凝聚層次聚類之前依據(jù)報警類型的不同做出標識。
1.2.2 基于權(quán)重的多態(tài)報警序列
為了將不同測點、不同報警作區(qū)分,可借鑒生物學堿基對標識基因序列的形式,將報警類型做縱向分類,設(shè)置不同的標識。如此,每個測點即可形成自己的類“基因”時序序列。
為了便于后續(xù)聚類運行,這種標識建議設(shè)置成數(shù)字。例如:可將縱向報警分類為:低低報警、低報警、正常值、高報、高高報(種類可依據(jù)實際情況做增刪),對應報警閾值為對應數(shù)字標識表示為:-2、-1、0、1、2。其中,數(shù)值表征報警嚴重程度,正負號表征報警方向。則上述序列化公式可優(yōu)化為帶權(quán)重的序列化公式:
1.2.3 傳統(tǒng)的凝聚層次聚類算法
Choi 等[7]提出了針對二元序列之間的相似度計算方法,進而利用凝聚層次聚類算法進行分類的算法。
凝聚層次聚類算法是一個相對簡單的聚類算法,具有相對廣泛的性實用與適用性,并且自誕生那一刻開始就在不斷的演進[11]。算法的關(guān)鍵是相似度如何進行計算。
Yang 等[11]指出,針對報警系統(tǒng)性能最好的相似度函數(shù)為Jaccard 函數(shù)與Sorgenfrei 函數(shù)。其中,Jaccard 函數(shù)的形式為:
Sorgenfrei 函數(shù)的形式為:
式中,S表示序列a 和序列b 的相似度大?。黄渲蠳a為序列a 中出現(xiàn)報警,即數(shù)字“1”的個數(shù),Nb為序列b 中出現(xiàn)報警,即數(shù)字“1”的個數(shù),而C則表示兩個序列中相同位置出現(xiàn)報警時,即同時出現(xiàn)“1”的個數(shù)。
因此,有上述公式(4)和公式(5)可知,在Na、Nb不變的情況下,C的值越大,相似度S的值越大,也就是兩個序列中同時出現(xiàn)報警越多,相似度越大。
為處理序列報警可能存在的整體延遲,可以對序列a 進行時間長度為τ 的整體平移,用平移得到的新序列aτ與b 計算相似度S,并選取不同的τ 多次計算以使S值最大,即:
上述算法是針對規(guī)整報警的,但在實際生產(chǎn)過程中,經(jīng)常會出現(xiàn)延遲時間不固定和非對稱的非規(guī)整報警。針對非規(guī)整報警,在0、1 序列化的基礎(chǔ)上以概率的形式給出了一種簡易可行的相似度算法:
(1) 計算序列a 中“1”的數(shù)量,記為N;
(2) 設(shè)定窗口長度L;
(3) 對于序列a 中的每一個“1”,若在序列b 對應位置前后各為L 的長度內(nèi)存在一個“1”,則記為一個“A1”,將序列a 中“A1”的數(shù)量記為m;
(4) 則可得序列b 相對于序列a 的相關(guān)性S(a,b)=m/N ;
(5) 同樣的方法可計算序列a 對序列b 的相關(guān)性。
示例如下圖2 所示,Pn為所選取的點位,取L=1,可得m=2,序列b 對序列a 的相關(guān)性S=2/3=0.66。
圖2 相關(guān)性計算示例Fig.2 Example for correlation computation
1.2.4 改進后的凝聚層次聚類算法
上述幾種凝聚層次聚類算法,無論是傳統(tǒng)的針對有固定延時的固定序列形式的Jaccard 函數(shù)與Sorgenfrei 函數(shù),還是針對非規(guī)整報警的,都是基于一種假設(shè),即事先假定所研究的報警是有固定延時的規(guī)整報警,或是非規(guī)整報警。這種假定有其合理性,事先熟知所研究的對象系統(tǒng),且對其中的報警關(guān)聯(lián)關(guān)系有一定程度的感知。但是,有很多情況是對所研究對象的內(nèi)在關(guān)系不很熟悉,更多情況是需要從無到有,挖掘出報警間的相關(guān)性。此時,往往是只知道所研究的報警數(shù)據(jù)(當今大數(shù)據(jù)挖掘既是如此)能得到報警序列,序列是否是固定延時關(guān)系,是否是規(guī)整的,都不得而知。另外,上述幾種方法都沒有體現(xiàn)出報警在時間序列上的矢量關(guān)聯(lián)關(guān)系,更沒有體現(xiàn)出報警不同狀態(tài)(高報、高高報等)下的高粒度影響。
因此,本文在多態(tài)報警序列的基礎(chǔ)上,提出了一種基于權(quán)重的多態(tài)時序通用型相似度算法,該方法如下:
(1)統(tǒng)計報警序列a 中非零的狀態(tài),并按權(quán)值排序,形成序列a 的報警狀態(tài)集合S={S1,S2,…,SN},Sn為序列的一個報警狀態(tài);
(2)若集合S 為空,則算法結(jié)束,否則從集合S中選取某一報警狀態(tài)Sn(1 ≤n≤N),同時從集合中去除Sn;
(3)計算序列a 中Sn的數(shù)量,記為N;
(4)設(shè)定時序窗口長度τ;
(5)對于序列a 中的每一個狀態(tài)Sn,若在序列b對應時序位置后τ 的長度內(nèi)存在一個非零狀態(tài),則記為一個“Tag_A1”,將序列a 中“Tag_A1”的數(shù)量記為m;
(6)則可得序列b 相對于序列a 的Sn報警狀態(tài)的相關(guān)性Rn(a,b)=m/N;
(7)將Sn加入到序列a 的多態(tài)相關(guān)性集合R(a,b);
(8) 重復步驟(2)~步驟(7),直至集合S 為空,可得序列a 的多態(tài)相關(guān)性集合R(a,b)={R1,R2,…,RN};
(9) 去除多態(tài)相關(guān)性集合R(a,b)中數(shù)值小于規(guī)定相關(guān)性閾值Rthreshold,新的集合R(a,b)={R1,R2,…,RM}中剩余的元素就是序列a 相對于序列b 相關(guān)性的多態(tài)聚類結(jié)果集。
計算示例如下圖3 所示,取時間窗口長度τ=3,依據(jù)上述算法可得序列a 的狀態(tài)集合S={-2,-1,1,2},相關(guān)性R(a,b)={0.5,0,0.67, 0.5}, 若取相關(guān)性閾值Rthreshold=0.6,則可得序列a 相對于序列b 的相關(guān)性聚類是序列a 標識為1 的一類(其它忽略)。
上述示例中,會發(fā)現(xiàn)一個極為不合理的現(xiàn)象,低低報的相關(guān)度為0.5,而低報的相關(guān)度為0,這與常識“發(fā)生低低報時肯定會發(fā)生低報”相違背,即多態(tài)序列的狀態(tài)有“包含”關(guān)系,因此可將上述算法借助于“基于權(quán)重的多態(tài)報警序列”中的權(quán)重值做進一步優(yōu)化。
上述算法的步驟(3)和步驟(5)需要做如下優(yōu)化:
(3) 優(yōu)化為:計算序列a 中與狀態(tài)Sn同向且權(quán)值不小于Sn的非零的狀態(tài)數(shù),記為N;
(5) 優(yōu)化為:對于序列a 中的每一個報警方向與Sn同向且權(quán)值不小于Sn的,若在序列b 對應時序位置后τ 的長度內(nèi)存在一個非零狀態(tài),則記為一個“Tag_A1”,將序列a 中“Tag_A1”的數(shù)量記為m。
優(yōu)化后,上述示例的相關(guān)性集合R(a,b)={0.5, 0.67,0.6,0.5},若取相關(guān)性閾值Rthreshold=0.6,則可得序列a 相對于序列b 的相關(guān)性聚類是序列a 標識為-1,1 的兩類。
圖3 多態(tài)時序相關(guān)性聚類方法示例圖Fig.3 Example for correlation computation based on multi-alarm-state sequence
通過上述基于權(quán)重的多態(tài)時序通用型相似度算法,我們可以很明顯的發(fā)現(xiàn),相較于傳統(tǒng)方法,該方法將工業(yè)報警按照以權(quán)重為依據(jù)進行了輕重緩急式的劃分,相較于傳統(tǒng)方法的粗放式區(qū)分,更加明細清晰,便于后續(xù)以此為基礎(chǔ)進行報警管理;以權(quán)重表示的報警的重要程度,數(shù)字化報警級別,可以進一步精細化報警管理。
本文所提及的報警相關(guān)性是指在某個運行的系統(tǒng)中,某一類報警發(fā)生對另一類報警發(fā)生產(chǎn)生的影響。若報警A 的發(fā)生,在一定程度上會引發(fā)報警B的發(fā)生,則稱報警A 與報警B 相關(guān);反之,若報警A 的發(fā)生與報警B 的發(fā)生毫無關(guān)聯(lián),則稱報警A 與報警B 無關(guān)。
顯然,在實際的工業(yè)系統(tǒng)中報警A 對報警B 的影響(或稱報警A 與報警B 相關(guān))不一定與報警B對報警A 的影響相同,即兩個報警之間的影響是不對稱的,具有方向性,本文稱這種方向性為兩個報警相關(guān)的矢量性。
如何度量這種報警矢量相關(guān)性的大小較為合適,對后續(xù)從數(shù)據(jù)中查找和表示這種矢量相關(guān)性至為重要。經(jīng)研究發(fā)現(xiàn),很多研究者都采用概率的形式作為相關(guān)性度量的形式[10,12,19-20],本文認為借鑒條件概率形式表達這種矢量相關(guān)性較為合適。
當報警A 發(fā)生時,可用報警B 發(fā)生的概率P(B|A)來表示報警A 對報警B 矢量相關(guān)性的大小,進行度量。當報警A 發(fā)生時,報警B 發(fā)生的概率越大,則視為B 與A 的矢量相關(guān)性越強,反之則A 與B 的相關(guān)性越弱。在系統(tǒng)運行的相當長的時間內(nèi),在報警A 發(fā)生時,報警B 就沒有發(fā)生過(或極少發(fā)生)時,即B 發(fā)生的概率P(B|A)≈0,則稱報警B 與A 無關(guān)。顯然,報警B 與報警A 的矢量相關(guān)性不一定等于報警A 與報警B 的矢量相關(guān)性,即P(B|A)不一定等于P(A|B)。
在工業(yè)系統(tǒng)運行一段時間后,會產(chǎn)生大量的報警數(shù)據(jù),如何從這些報警數(shù)據(jù)中獲取報警之間的相關(guān)性,對于報警的預防管理和安全生產(chǎn)都具有十分重要的意義。
為了找出這種矢量相關(guān)性,我們首先需要獲取系統(tǒng)運行相當長時間內(nèi)的報警數(shù)據(jù);然后借助上一章的聚類算法,從系統(tǒng)的報警數(shù)據(jù)中聚類出報警類;之后在獲取的報警類的基礎(chǔ)上,才能研究報警類之間的矢量相關(guān)性;最后借助挖掘出來的相關(guān)性為生產(chǎn)服務。
當下幾乎所有的工業(yè)系統(tǒng)幾乎都安裝了DCS 系統(tǒng)等工業(yè)運行系統(tǒng),可以十分便利的獲得相當豐富的大量報警數(shù)據(jù)。從這些數(shù)據(jù)中,利用上一章闡述的基于權(quán)重的多態(tài)時序通用型相似度算法的改進型凝聚層次聚類算法,不難獲得報警類。因此,以下主要闡述在獲得的報警類的基礎(chǔ)上,如何挖掘報警類之間的矢量相關(guān)性。
從上一節(jié)報警矢量相關(guān)性的定義,不難發(fā)現(xiàn)找出這種關(guān)系不難,但是確認這種相關(guān)性卻是比較困難。
理論上,在某一類報警發(fā)生后,系統(tǒng)后續(xù)一段時間內(nèi)(以下簡稱這段時間為時間閥)發(fā)生的所有報警都有可能與之相關(guān)。當某類報警發(fā)生時,在與之相關(guān)性的報警中,有些報警經(jīng)常會發(fā)生(強相關(guān),這類相互關(guān)聯(lián)的報警往往已經(jīng)被標識為報警聯(lián)動,隨著系統(tǒng)的投運,很容易被運行人員察覺),有些可能偶爾發(fā)生(弱相關(guān),可能觸發(fā)條件不充分,或與之無關(guān)),甚至有些實際上無關(guān)的報警,也恰巧發(fā)生了。因此,如何甄別與該類報警相關(guān)的所有報警類,將顯得至關(guān)重要。
從報警矢量相關(guān)性的定義可知,與報警A 相關(guān)的報警應該是在報警A 發(fā)生后發(fā)生的報警,因此可用時間序列拓撲圖進行描述,如下圖4 所示。
圖4 與某類報警A 相關(guān)的報警類分布示意圖Fig.4 Sketch map of the correlation between alarm A and others
圖中原點表示某類報警A;實心圓點表示與報警A 相關(guān)的點;空心圓點表示與報警A 無關(guān)的點;橫軸表示時間距離t;圓點與原點A 之間的距離表示報警A 發(fā)生后,該點代表的報警類與報警A 發(fā)生時的時間維度上的歐氏距離。
理論上,當選取恰當?shù)臅r間間隔T 后,即可涵蓋與報警A 相關(guān)的所有報警類。
假定時間間隔T 已知后,可按如下算法獲取報警A 的矢量相關(guān)報警集合CA(與報警A 相關(guān)的報警類組成的集合):
(1)從大量的報警數(shù)據(jù)中獲取報警A 發(fā)生的集合CAt=(Ati|i=1,2,3,...,N),Ati表示在ti時刻A 類報警發(fā)生了一次;
(2)創(chuàng)建與報警A 存在矢量相關(guān)性的報警集合CA=?,及相對應的關(guān)聯(lián)報警發(fā)生次數(shù)集合Ccount=?;
(3)若集合CAt=?,則跳轉(zhuǎn)到步驟(8);否則,選取集合CAt中第一個元素At1,即報警A 在t1時刻發(fā)生的報警實例;
(4)從報警數(shù)據(jù)中查詢得到t1時刻到t1+T 時刻發(fā)生的所有的報警集合Calarm={a1,a2,...an,且ai≠aj, 1 ≤i≤n,1 ≤j≤n,i≠j};約定:若從t1時刻到t1+T 時刻某報警ai重復發(fā)生多次,即報警發(fā)生次數(shù)≥2,則只記錄一次;若從t1時刻到t1+T 時刻之間報警A 又發(fā)生了,則只統(tǒng)計報警A 兩次發(fā)生之間的報警;
(5)若集合Calarm為空,則從集合CAt中去掉元素At1,之后跳轉(zhuǎn)至步驟(3);否則,從集合Calarm中選取第一個元素a1;
(6)查詢報警a1是否在矢量相關(guān)集合CA中。若不在,則將報警加入到集合CA中,同時在計數(shù)集合Ccount中追加一個新元素1;否則,查詢報警a1在集合中CA的位置i,并將集合Ccount中的第i 個元素ci加1;
(7)從集合Calarm中去掉a1,跳轉(zhuǎn)到步驟(5);
(8)若集合Ccount不為空,則可統(tǒng)計與報警A 相關(guān)報警的相關(guān)度。依次計算集合Calarm中每個報警元素 ai在報警A 發(fā)生時出現(xiàn)的概率P(ai|A),100%(1 ≤i≤n,ciCcount,N是集合CAt的度),由P(ai|A) 構(gòu)成新的報警A 相關(guān)度集合PA;
(9)相關(guān)度校正。若集合PA≠ ?,則可選取合適的經(jīng)驗值Ps(0 ≤Ps<1),去除集合PA中元素值Pi (10) 若Calarm≠ ?,則 集 合PA≠ ?(集 合PA與Calarm同步,且元素一一對應),集合Calarm即為與報警A 矢量相關(guān)的報警集合,集合PA為與集合Calarm中元素一一對應的報警矢量相關(guān)度。 不難理解,上節(jié)算法中提及的時間閾值的含義是:報警發(fā)生后,它的影響在時間上能傳遞“多遠”。 時間閾值的選取,將直接關(guān)系到報警分析模型的時效性與準確性。 很明顯,對于一個連續(xù)運行的系統(tǒng),選取不同的時間間隔(時間閥),與某一類報警相關(guān)的后續(xù)報警類數(shù)目變化很大。理論上時間閾值越小,相關(guān)報警數(shù)據(jù)量將減少,計算量越小,時效性越好;時間閾值越大,相關(guān)報警數(shù)據(jù)量越多,計算量越大,時效性越差;而且,每類報警的時間閾值應該是不同的。 一般情況下,可根據(jù)報警的具體情況,依據(jù)經(jīng)驗進行設(shè)定。在一個穩(wěn)定運行一段時間的系統(tǒng),某類報警發(fā)生時,它的影響能傳遞多遠,是可以依據(jù)系統(tǒng)特性以及運行管理人員的經(jīng)驗獲取得到的。 當然,若沒有恰當?shù)慕?jīng)驗值可供參考,可按如下兩個公式選取時間閾值T: 公式(7)時間閾值T 的計算是基于如下假定:假定報警A 連續(xù)前后兩次發(fā)生的間隔內(nèi),與之相關(guān)的報警應該是發(fā)生的;而公式(8)時間閾值T的計算是則是假定相關(guān)報警不一定發(fā)生,以大量計算作為代價,獲得盡可能窮盡相關(guān)報警為目標。 應用上面的算法,從報警大數(shù)據(jù)中可計算獲取的某類報警類的矢量相關(guān)報警,盡管已經(jīng)利用“時間閾值”做了過濾,但是經(jīng)試驗數(shù)據(jù)檢驗(參見下章“案例研究”),發(fā)現(xiàn)數(shù)量還是不少。如果相關(guān)報警數(shù)量過多,可能會影響在運行中應用的時效性和準確性,所以需要依據(jù)相關(guān)度校正值Ps對做進一步取舍。 如果我們獲取了足夠多的數(shù)據(jù)量,可以做如下假設(shè):在某類報警發(fā)生時,若與之相關(guān)的報警出現(xiàn)的條件概率極低,則可假設(shè)該相關(guān)報警是偶然發(fā)生的,與該報警無關(guān),可以忽略。即使事實上是相關(guān)的,鑒于從歷史數(shù)據(jù)上分析得到發(fā)生的概率極低,也可視為無關(guān)。 算法中用來取舍的報警相關(guān)度校正值Ps至關(guān)重要。從某種意義上來看,校正值Ps是反應與報警A相關(guān)的所有報警中運行系統(tǒng)所關(guān)注的相關(guān)程度,或者說是報警A 的重要程度。若Ps選取較大的值,則是關(guān)注與報警A 相關(guān)性較大報警,屬粗放型,顯示報警A 關(guān)聯(lián)面不是很大;反之,則是關(guān)注與報警A 相關(guān)性盡可能多的報警,細致入微,顯示報警A 關(guān)聯(lián)面可能很廣。 本文選取某火電廠2014年1月至2014年8月的14 萬余條報警數(shù)據(jù),采用上述算法進行了試驗。部分數(shù)據(jù)樣本如下表1 所示。 表1 部分數(shù)據(jù)樣本列表Table 1 Part of test data 在我們獲得工業(yè)報警數(shù)據(jù)后,可針對這些數(shù)據(jù)采用上述方法進行測試實驗,挖掘報警之間的相關(guān)關(guān)系。 3.2.1 報警聚類 采用“基于權(quán)重的多態(tài)時序通用型相似度算法”,依據(jù)測點ID、報警類型和優(yōu)先級,其中優(yōu)先級選取低低報警(-2)、低報警(-1)、高報(1)和高高報(2),從給定的數(shù)據(jù)集中進行聚類分析,可得到該數(shù)據(jù)集的報警類。聚類結(jié)果詳見表2。 相較于傳統(tǒng)報警聚類,只做報警ID 和報警與否的分類,將會得到更詳盡而精確的報警結(jié)果。如此,將更有利于下一步的分析——查找報警之間的相關(guān)性。 3.2.2 報警相關(guān)性分析 利用報警相關(guān)性獲取算法,依次查找每個報警類的相關(guān)報警;矢量性依據(jù)報警在時間上發(fā)生的先后關(guān)系來定。 時間閾值T 取公式(7)的值。 報警相關(guān)度校正值Ps取60%,結(jié)果如下表3 所示。 3.3.1 報警聚類結(jié)果 應用上述“基于權(quán)重的多態(tài)時序通用型相似度算法”的改進型凝聚層次聚類算法,得到的報警類部分結(jié)果如下表2 所示。 表2 報警聚類結(jié)果列表Table 2 Result of alarm cluster 3.3.2 報警矢量相關(guān)性結(jié)果 采用上述算法,分析得到的部分報警矢量相關(guān)結(jié)果如下表3 所示。 表3 中只列出了報警發(fā)生次數(shù)在10 次以上,相關(guān)度大于60%的數(shù)據(jù),即報警相關(guān)度校正值Ps取60%。之所以選擇報警次數(shù)多余10 次的數(shù)據(jù),是因為考慮到在大量報警數(shù)據(jù)中,只發(fā)生過幾次的報警不具有統(tǒng)計性。 表3 報警矢量相關(guān)結(jié)果列表Table 3 Result of alarm vector correlation 圖5 報警矢量相關(guān)性的二維矩陣展示圖Fig.5 Representation of alarm vector correlation with two-dimensional matrix 報警矢量相關(guān)性展示可以是圖形、列表等多種方式,都可以展示某一類報警和與其相關(guān)的其它報警之間的關(guān)聯(lián)關(guān)系。 表3 以列表的方式對報警矢量相關(guān)性進行了展示,但是很明顯,列表這種羅列的展示方式在矢量相關(guān)性的方向性特點的展示上明顯不足。為了更準確、直觀反映報警之間的矢量關(guān)聯(lián)關(guān)系,可借助二維矩陣進行展示。 二維矩陣展示報警類之間的矢量關(guān)聯(lián)關(guān)系的規(guī)則如下:用二維矩陣行和列表示報警類集合中的元素;矩陣中的數(shù)值表示行對應的報警類和列對應的報警類之間的關(guān)聯(lián)度(條件概率),即矩陣中的某個值表示該值所在行對應的報警類發(fā)生后,所在列所對應的報警類有多大概率會發(fā)生。若值為0,表示無關(guān);矩陣主對角線的值是100,即表示報警類對自己本身的影響是100%。 由上述二維矩陣建立規(guī)則可知,所建立的二維矩陣應該是一個非對稱矩陣,可以很好地表達報警類之間的矢量關(guān)聯(lián)關(guān)系。 上述實驗結(jié)果的二維矩陣展示如圖5 所示。 本文依據(jù)工業(yè)報警數(shù)據(jù)的時序特性和報警特點,在傳統(tǒng)二元序列的基礎(chǔ)上,首次提出了基于權(quán)重的多態(tài)時序通用型相似度算法,改進了傳統(tǒng)的凝聚層次聚類算法。同時,首次提出了報警矢量相關(guān)性的概念,并指出采用條件概率形式既可恰當表述矢量相關(guān)性的大小,又可以表示其方向性;而且在上述基礎(chǔ)上,提出了一種針對大批量報警數(shù)據(jù)的挖掘報警類之間矢量相關(guān)性的算法。 該方法為時間序列報警間關(guān)聯(lián)關(guān)系的挖掘提供了量化分析依據(jù)。 經(jīng)生產(chǎn)數(shù)據(jù)試驗表明,該算法確有實效。文中最后還對報警矢量相關(guān)性的表示進行了探討,提出了借助二維矩陣形式可以直觀展示此種關(guān)聯(lián)關(guān)系。 利益沖突聲明 所有作者聲明不存在利益沖突關(guān)系。2.3 時間閾值T
2.4 報警相關(guān)度校正值Ps
3 案例研究
3.1 數(shù)據(jù)
3.2 算法在實驗數(shù)據(jù)上的應用
3.3 算法計算結(jié)果
3.4 報警矢量相關(guān)性結(jié)果的二維矩陣展示
4 結(jié)論