王紅君 白 鵬 趙 輝,2 岳有軍
(1.天津理工大學天津市復雜系統(tǒng)控制理論與應用重點實驗室,天津 300384;2.天津農(nóng)學院,天津 300384)
鋼鐵企業(yè)高爐煤氣發(fā)生量異常數(shù)據(jù)檢測
王紅君1白 鵬1趙 輝1,2岳有軍1
(1.天津理工大學天津市復雜系統(tǒng)控制理論與應用重點實驗室,天津 300384;2.天津農(nóng)學院,天津 300384)
從高爐煤氣生產(chǎn)的實際工況出發(fā),對異常數(shù)據(jù)產(chǎn)生的原因和特點進行分析。針對現(xiàn)有異常檢測方法運算效率低下的問題,提出一種改進的局部異常因子檢測算法。該算法首先利用五數(shù)總括法剔除掉大量的正常數(shù)據(jù),然后再用一種相對k距離的比值表示剩余離群點的異常程度,進而判斷異常數(shù)據(jù)。仿真實驗表明:改進方法檢測所需的時間比傳統(tǒng)的局部異常因子方法檢測所需的時間更少,且檢測效果更加準確、直觀。
高爐煤氣 異常數(shù)據(jù)檢測 離群值 局部異常因子 數(shù)據(jù)預處理
高爐煤氣是高爐煉鐵過程中的重要副產(chǎn)能源,其產(chǎn)量在鋼鐵企業(yè)各類副產(chǎn)煤氣中居于首位[1,2]。高爐煤氣經(jīng)過凈化后可以獨自作為熱風爐的燃料進行單燒,也可以作為加熱爐的燃料與其他種類煤氣進行混燒。合理、高效地利用高爐煤氣,不僅可以節(jié)約能源,還能降低煉鋼成本,對企業(yè)有著重要的經(jīng)濟意義?,F(xiàn)今在鋼鐵企業(yè)中廣泛使用的能源管理系統(tǒng)(EMS)可對高爐煤氣數(shù)據(jù)進行實時監(jiān)控,并能根據(jù)歷史數(shù)據(jù)對高爐煤氣資源進行中長期預測[3]與優(yōu)化調(diào)度[4]。然而,EMS的所有功能都建立在所采集到的煤氣數(shù)據(jù)準確、真實的基礎(chǔ)上。否則,混入了大量異常值的煤氣數(shù)據(jù)不僅不能為生產(chǎn)提供可靠的依據(jù),而且還有可能對煤氣調(diào)度產(chǎn)生誤導,造成不必要的經(jīng)濟損失,甚至是重大安全事故。因此,針對高爐煤氣生產(chǎn)過程中的異常數(shù)據(jù),尋求一種有效、便捷的檢測方法是合理使用煤氣資源的前提。
在國內(nèi)的一些大型鋼鐵企業(yè)中,對煤氣能源數(shù)據(jù)的異常檢測并沒有成為生產(chǎn)過程的一個獨立環(huán)節(jié),它只作為數(shù)據(jù)采集系統(tǒng)下的一個子功能。其主要手段還是簡單地根據(jù)歷史數(shù)據(jù)趨勢估計煤氣發(fā)生量數(shù)據(jù)閾值,低于最下限或者高于最上限的數(shù)據(jù)被判斷為異常。但是煤氣數(shù)據(jù)會隨著高爐冶煉時發(fā)生停爐、換爐、減風及休風等各種爐況而出現(xiàn)較大的波動,僅憑借閾值判斷極易出現(xiàn)漏檢與誤檢的情況,無法保證其檢測精度。
在目前的研究中,對于異常數(shù)據(jù)檢測的方法主要分為基于統(tǒng)計預測的檢測方法[5]、基于距離的檢測方法[6,7]和基于密度的檢測方法[8]?;诮y(tǒng)計預測的檢測方法先要假定待檢測的數(shù)據(jù)屬于某種特定的分布,然后將嚴重偏離假設分布的數(shù)值用不一致性檢測出,并視為異常點,但由于數(shù)據(jù)的分布常常不是規(guī)范的,這就使得檢測結(jié)果有較大的偏差;基于距離的檢測方法避免了大量的運算過程,而且對數(shù)據(jù)的分布沒有要求,檢測速度快,但是數(shù)據(jù)密度發(fā)生改變時,漏檢率較高;基于密度的檢測方法是通過比較被檢測點與鄰域內(nèi)其他點的密度來確定是否為異常點,該方法可檢測出鄰域內(nèi)的所有異常值,準確性很高,但是需要多次查詢與迭代計算,算法時間復雜度較高[9]。基于以上分析,筆者綜合基于距離檢測方法的高效性和基于密度檢測的高準確性,對局部異常因子(Local Outlier Factor,LOF)算法進行改進,提出了一種改進的局部異常因子方法(Improved Local Outlier Factor,ILOF),并將該方法與普通的LOF算法進行比較,驗證了改進方法的有效性。
造成煤氣發(fā)生量數(shù)據(jù)異常的原因有很多,大致分為兩類:高爐產(chǎn)氣過程數(shù)據(jù)異常與采集系統(tǒng)異常。高爐產(chǎn)氣過程數(shù)據(jù)異常的成因非常復雜,由于高爐在冶煉過程中內(nèi)部發(fā)生的氧化還原反應多達上百種[10],因此煤氣的發(fā)生量受到多種因素的影響。在正常情況下,煤氣產(chǎn)量是一種隨機波動的曲線,而在整個時間段內(nèi)又表現(xiàn)出很強的類周期性。當高爐冶煉過程中發(fā)生懸料、崩料及待料等重大異常工況時,高爐煤氣數(shù)據(jù)可能會發(fā)生幅值的突變,從而形成異常數(shù)據(jù)點。
采集系統(tǒng)異常又分為傳感器異常與數(shù)據(jù)傳輸異常。高爐煤氣是一種多組分的氣體混合物,可看作是一種多相氣溶膠[11]。在高爐煤氣系統(tǒng)長期運行過程中,傳感器的某些部件(如流量計的導壓管)可能會被高爐煤氣中的顆粒膠質(zhì)堵塞,造成傳感器失靈,產(chǎn)生大量的異常數(shù)據(jù)。另一方面,由于鋼鐵生產(chǎn)處于強電磁環(huán)境中,信號在傳輸過程中也會受到干擾,引起數(shù)據(jù)丟失或畸變,造成異常的發(fā)生。
由異常數(shù)據(jù)產(chǎn)生的工況機理分析可知,異常數(shù)據(jù)大致分為兩類:第一類主要是由生產(chǎn)過程中的某些擾動或是某些異常工況導致的,其特征是煤氣數(shù)值嚴重偏離周圍點,也就是所說的離群值;第二類是由局部故障而造成的,此類情況下采集到的數(shù)據(jù)中會有連續(xù)的零值點出現(xiàn)。由于后者的情形在正常生產(chǎn)的前提下較少出現(xiàn),故筆者重點研究第一類異常數(shù)據(jù)的檢測,即離群點的檢測。
局部異常因子是異常檢測中的重要方法,在網(wǎng)絡攻擊檢測、氣候異常檢測等方面有著廣泛應用。其主要思想是通過比較被檢測數(shù)據(jù)點與周圍其他數(shù)據(jù)點的局部密度來判定是否為異常點[12]。算法的主要步驟如下:
a. 計算數(shù)據(jù)對象p的k距離。對任意給定的正整數(shù)k,對象p的k距離被定義為數(shù)據(jù)對象p與另一個對象o之間的歐氏距離,即k-distance(p)。對于對象o有這樣的定義——至少有k個對象o′∈D{p}使得d(p,o′)≤d(p,o);至多有k-1個對象o′∈D{p}使得d(p,o′) b. 計算對象p的k距離鄰域Nk-distance。對象p的k距離鄰域定義為所有與對象p之間距離不大于k的對象全體,可表示為Nk-distance={q∈D{p}|d(p,q)≤k-distance(p)},其中q稱作p的k最近距離。 c. 計算p的可達距離。相對于對象o,p的可達距離定義為Reach-dist(p,o)=max{k-distance(o),d(p,o)}??蛇_距離可以理解為數(shù)據(jù)對象密集化的過程,即遠離o的對象賦予其歐氏距離d(p,o),靠近o的對象賦予其k距離。 可以看出,局部異常因子的值事實上就是對象的局部可達密度與p的局部可達密度比率之和的平均值,它反映的是數(shù)據(jù)對象的局部離群程度,離群特征越明顯,對應的局部異常因子值也就越大。用此原理可判斷出最有可能成為異常點的數(shù)據(jù)。 從上述LOF算法中可以明顯看出:若要檢測出局部異常點,就需要對每一個數(shù)據(jù)對象進行可達距離的計算,即比較對象p的k距離和p的鄰域距離,再選出二者中的最大值作為可達距離。然后,在可達距離的基礎(chǔ)上進行可達密度的計算,最終求出每個數(shù)據(jù)對象的局部異常因子值。但是由于鋼鐵企業(yè)煤氣數(shù)據(jù)采集系統(tǒng)中數(shù)據(jù)量龐大,計算可達距離與可達密度需要耗費大量的時間。因此,針對以上LOF算法存在的缺陷,筆者采取了一種改進算法:首先利用五數(shù)總括法[13]剔掉大量的非異常數(shù)據(jù),然后利用改進的局部異常因子算法來表征數(shù)據(jù)的異常度。具體的步驟如下: a. 采用五數(shù)總括法進行數(shù)據(jù)預處理,剔除非異常數(shù)據(jù)。將收集到的煤氣數(shù)據(jù)序列從大到小排列,確定出序列的中位數(shù)與最大、最小值。中位數(shù)與最大值、最小值距離的二分之一處(即整個序列的四分之一處和四分之三處)稱為上四分位數(shù)與下四分位數(shù),分別記作FU、FL。上、下四分位數(shù)之差稱為四分展布,記作df=FU-FL。將FU+1.5df、FL-1.5df分別定義為數(shù)據(jù)序列的上截斷點和下截斷點,上、下截斷點兩端的數(shù)據(jù)通??杀徽J為是疑似的異常數(shù)據(jù),如圖1所示。 b. 將由步驟a分析得到的疑似異常數(shù)據(jù)取出,并計算疑似異常數(shù)據(jù)的k距離。具體方法與LOF計算方法一致,只是非異常數(shù)據(jù)不參與計算。 c. 計算疑似異常數(shù)據(jù)對象的k距離鄰域,即不大于k距離的范圍內(nèi)所包含的所有對象的個數(shù)。 圖1 五數(shù)總括法預處理數(shù)據(jù)示意圖 利用步驟e求出的改進局部異常因子來判斷煤氣數(shù)據(jù)是否異常。改進局部異常因子值越大,被認定為異常數(shù)據(jù)的幾率就越大。而在步驟a中直接去除的大量正常點對應的改進局部異常因子值可認為是零。 5.1ILOF算法檢測的準確性 筆者以國內(nèi)某鋼鐵企業(yè)的高爐煤氣發(fā)生量數(shù)據(jù)為實驗對象。為保證實驗的可靠性,隨機選取其中連續(xù)的1 400個煤氣數(shù)據(jù)(采樣間隔1min)為實驗樣本,檢測其中的異常點個數(shù)。原始數(shù)據(jù)如圖2所示。設置k距離值為20,通過比較改進算法與普通LOF算法的檢測效果與所耗費的時間來說明改進算法的優(yōu)越性。 圖2 原始數(shù)據(jù) 圖3是在Matlab2010環(huán)境下,利用普通的LOF算法得到的檢測效果。可以觀察出得到的局部異常因子值波動很頻繁,除檢測出第106、641、1 336min等幾處較大的異常點外,位于這幾個異常點之間的多處數(shù)據(jù)也都被檢測出來。但由實際工況可知,在這些時間段內(nèi)并沒有異常的生產(chǎn)情況發(fā)生,說明這些大多是誤檢數(shù)據(jù)。造成這種結(jié)果是因為LOF算法定義異常的方式對于煤氣數(shù)據(jù)來說過于敏感。 圖3 LOF算法的異常檢測效果 改進算法的異常點檢測效果如圖4所示,高爐煤氣中的突變數(shù)據(jù)(如106、614、986、1 336min等處)都能較為準確地檢測出,而其他時刻的改進局部異常因子值大都比較穩(wěn)定地集中在1附近,這說明這些時刻的數(shù)據(jù)不是異常點,有效地避免了大量誤檢的發(fā)生。通過實驗得知,檢測結(jié)果與實際工況是相吻合的。 圖4 ILOF算法的檢測效果 5.2ILOF算法檢測的效率 為定量說明改進算法的高效性,也為了科學評價改進方法的合理性?,F(xiàn)確定k距離為5,分別在數(shù)據(jù)規(guī)模為200、400、600、800、1 000點時,記錄算法的運行時間。并與普通的LOF算法相比較,結(jié)果如圖5所示。從圖中可以看出,隨著數(shù)據(jù)規(guī)模的不斷增加,ILOF算法的運行時間要明顯少于LOF算法的,且數(shù)據(jù)量越大,這種優(yōu)勢愈加明顯。 圖5 k鄰域距離固定情況下兩種算法的 同理,固定檢測數(shù)據(jù)個數(shù)為1 000個,令k距離分別為5、10、15、20、25,觀察在不同的k距離下兩種算法的時間性能,如圖6所示。從圖中也可以看出:隨著k距離的增加,包含的對象逐漸增多,但改進算法的運行時間還是要少于普通LOF算法的。 圖6 數(shù)據(jù)規(guī)模固定時兩種算法的運行時間對比 仿真實驗分別從ILOF檢測算法的準確性和高效性兩方面做了分析驗證,結(jié)果顯示改進后的檢測方法對真正的離群數(shù)據(jù)可保持較高的敏感性,而對煤氣生產(chǎn)過程中正常的波動數(shù)值則保持較低的敏感性,這就能有效地分離出高爐因換爐、加料、休風及減風等環(huán)節(jié)所產(chǎn)生的異常數(shù)據(jù),具有較高的準確度。實驗還同時從k距離與數(shù)據(jù)規(guī)模兩個方面驗證了算法的高效性。由于改進方法剔除了大量的正常點,只檢測經(jīng)篩選后得到的一小部分疑似的異常值,且省去了可達距離與可達密度的查詢計算,所以相應的運算時間也較普通的LOF算法有了明顯減少。 首先就鋼鐵企業(yè)煤氣發(fā)生量數(shù)據(jù)的異常原因和異常數(shù)據(jù)的特點進行了分析,然后在LOF異常檢測算法基礎(chǔ)上進行改進,用五數(shù)總括法對數(shù)據(jù)進行預處理,初步挑選出可疑的數(shù)據(jù),然后計算疑似異常數(shù)據(jù)的改進局部異常因子,最終確定真正的異常數(shù)據(jù)。該方法不僅可以有效地縮小檢測的數(shù)據(jù)量,還簡化了數(shù)據(jù)異常程度的定義,降低了檢測算法的敏感性,減少了誤檢的發(fā)生。 [1] 沈丁洋. 鋼鐵廠煤氣管網(wǎng)系統(tǒng)的瞬變流分析及模擬[D].昆明:昆明理工大學,2008. [2] 徐振東,楊峻.新型高爐煤氣切圓燃燒的CFD數(shù)值研究[J].化工機械,2013,40(6):788~791,804. [3] 張琦,谷延良,提威,等.鋼鐵企業(yè)高爐煤氣供需預測模型及應用[J].東北大學學報(自然科學版),2010,31(12):1737~1740. [4] 孔海寧.鋼鐵企業(yè)副產(chǎn)煤氣系統(tǒng)優(yōu)化調(diào)度研究[D].天津:天津大學,2011. [5] 陳立軍,張亞紅,海冉冉.一種新型融合離群點的穩(wěn)態(tài)檢測方法[J].化工自動化及儀表,2013,40(5):582~586. [6] 馬賀賀,胡益,侍洪波.基于馬氏距離局部離群因子方法的復雜化工過程故障檢測[J].化工學報, 2013,64(5):1674~1682. [7] 楊臻, 張明慧.基于雙倍距離的孤立點檢測算法研究[J].制造業(yè)自動化,2013,35(15):40~42. [8] 楊風召,朱揚勇,施伯樂.IncLOF:動態(tài)環(huán)境下局部異常的增量挖掘算法[J].計算機研究與發(fā)展, 2004,41(3):477~484. [9] 薛安榮, 姚林, 鞠時光,等.離群點挖掘方法綜述[J]. 計算機科學, 2008,35(11):13~18. [10] 劉祥官, 曾九孫, 郝志忠, 等.多模型集成的高爐煉鐵智能控制專家系統(tǒng)[J].浙江大學學報(工學版), 2007,41(10):1637~1642. [11] 曲法泉.從焦爐煤氣中脫除焦油和萘的氣溶膠[J]. 燃料與化工,1997,28(5):294~297. [12] Breunig M, Kriegel H, Ng R, et al. LOF: Identifying Density-based Local Outliers[C].SIGMOD ′00 Proceedings of the 2000 ACM SIGMOD International Conference on Management of Data.NY, USA:ACM,2000:93~104. [13] 趙成林,張維維,李德剛,等.基于BP神經(jīng)網(wǎng)絡的VD過程溫降預報模型[J].煉鋼,2010,26(3):47~50. OutliersDetectionofBFGGeneratingDatainIronandSteelIndustry WANG Hong-jun1,BAI Peng1, ZHAO Hui1,2, YUE You-jun1 (1.TianjinKeyLaboratoryforControlTheoryandApplicationinComplicatedSystems,TianjinUniversityofTechnology,Tianjin300384,China; 2.TianjinAgriculturalUniversity,Tianjin300384,China) Starting with actual conditions of blast furnace gas (BFG) generation, both causes and characteristics of outliers in BFG generation data were analyzed; and considering poor operation efficiency of existing methods for the outliers detection, an improved outlier factor detection algorithm was proposed, in which, having the five-number method used to eliminate a large number of normal data and then having the method of relativekdistance’s ratio adopted to express the degree of abnormity of the rest data and then to determine the outlier. The simulation experiment shows that this improved outlier factor algorithm becomes more time-saving and accurate than traditional local outlier factor algorithm. BFG, detection of abnormal data, outliers, local outlier factor, data preprocessing TH865 A 1000-3932(2016)06-0591-05 2016-04-20(修改稿)基金項目:天津市科技支撐計劃項目(13ZCZDGX03800)4 改進的LOF算法
5 仿真結(jié)果與分析
6 結(jié)束語