陳穎聰,李 強(qiáng),黃秋鳳,林茂松
(西南科技大學(xué) 信息工程學(xué)院,綿陽 621010)
隨著工業(yè)物聯(lián)網(wǎng)進(jìn)程的加快,傳感器、計算機(jī)、通信、數(shù)據(jù)存儲等技術(shù)的融合發(fā)展,互聯(lián)網(wǎng)、工業(yè)生產(chǎn)過程等行業(yè)產(chǎn)生并存儲了大容量數(shù)據(jù),且隨時間呈現(xiàn)指數(shù)增長。因此,通過結(jié)合數(shù)據(jù)挖掘,人工智能,云計算等技術(shù)高效利用這些大規(guī)模數(shù)據(jù),從中挖掘出有用的知識來輔助決策,已成當(dāng)前信息決策領(lǐng)域研究的重點之一[1]。
數(shù)據(jù)挖掘(Data Mining)主要通過聚類、分類、預(yù)測和關(guān)聯(lián)等方式從海量的、模糊的、冗余的實際應(yīng)用數(shù)據(jù)中,提取隱含在其中的人們事先不知道的但又可能有用的信息和知識的過程[2]。聚類算法根據(jù)樣本之間的相似性,將樣本規(guī)劃到不同的類別中,關(guān)聯(lián)分析通過挖掘數(shù)據(jù)中的頻繁項集來推導(dǎo)數(shù)據(jù)之間潛在的關(guān)聯(lián)規(guī)則。其中,聚類的數(shù)據(jù)類型為連續(xù)型,關(guān)聯(lián)規(guī)則為離散型;聚類體現(xiàn)挖掘的描述功能,關(guān)聯(lián)規(guī)則體現(xiàn)預(yù)測和驗證功能;聚類的輸出形式為類簇,關(guān)聯(lián)規(guī)則輸出的是規(guī)則,兩者具有一定的互補(bǔ)性[3]。
同時,工業(yè)制造技術(shù)的發(fā)展加速了工業(yè)過程數(shù)據(jù)的產(chǎn)生,工業(yè)過程正在從“業(yè)務(wù)驅(qū)動型”向“數(shù)據(jù)驅(qū)動型”演進(jìn),而工業(yè)過程大數(shù)據(jù)蘊含的巨大價值,可以通過對數(shù)據(jù)的分析和應(yīng)用來提高生產(chǎn)力、降低消耗[4,5]。而傳統(tǒng)的數(shù)據(jù)挖掘方式已經(jīng)難以為繼,存在執(zhí)行效率低、資源消耗大、可擴(kuò)展性低以及容錯性差等問題[6,7],并行計算的出現(xiàn)則有效地解決了上述問題。
因此,本文將兩者結(jié)合起來,提出一種面向工業(yè)過程控制的并行聚類關(guān)聯(lián)規(guī)則挖掘算法。該算法基于Spark并行計算框架,首先采用K-Means++聚類算法對被控變量進(jìn)行聚類,然后對操作數(shù)據(jù)利用1σ準(zhǔn)則進(jìn)行分析、分段和標(biāo)定,最后,針對工業(yè)過程控制優(yōu)化Eclat算法挖掘操作變量與被控變量之間的關(guān)系,使得挖掘運算有效降維且具有更好的挖掘目標(biāo),挖掘結(jié)果可以清晰地顯示聚類形成的原因和聚類之間的關(guān)系等潛在知識。將操作員如何應(yīng)對現(xiàn)場狀況的經(jīng)驗挖掘出來,同時得到還未發(fā)現(xiàn)的規(guī)律,用于調(diào)整生產(chǎn)、優(yōu)化操作,對實際生產(chǎn)具有一定的指導(dǎo)意義。
Eclat算法是一種基于垂直數(shù)據(jù)結(jié)構(gòu)和深度優(yōu)先搜索策略的頻繁項集挖掘算法。該算法利用等價類思想將事務(wù)數(shù)據(jù)庫劃分為相互不重疊的多個獨立子空間,每個子空間自底向上獨立進(jìn)行挖掘[8]。
算法通過迭代計算的思想:由兩個頻繁k-項集并集得到候選(k+1)-項集,由兩個頻繁k-項集的事務(wù)記錄表(Tidset)做交集,得到候選(k+1)-項集的Tidset表,通過計算候選(k+1)-項集的Tidset表的支持度,判斷生成頻繁(k+1)-項集,以此迭代至并集或交集為空,算法結(jié)束[9]。
Eclat算法要能夠有效處理海量數(shù)據(jù),最常用和有效的方式是并行計算。當(dāng)前Eclat并行計算的實現(xiàn)方式有兩種:1)CPU/GPU并行;2)分布式并行。文獻(xiàn)[10]、文獻(xiàn)[11]采用CPU/GPU并行的方式實現(xiàn)Eclat算法的并行化,屬于縱向擴(kuò)展,需要高配置的計算機(jī),實現(xiàn)成本和難度較大,性能提升有限。文獻(xiàn)[12]、文獻(xiàn)[13]采用分布式集群方式實現(xiàn)Eclat算法的并行化,屬于橫向擴(kuò)展,不需要高配置的計算機(jī),多臺普通配置即可,實現(xiàn)成本和難度較低,性能提升理論上無限,因此成為當(dāng)前解決處理海量數(shù)據(jù)的最優(yōu)決策。
當(dāng)前,基于MapReduce/Spark計算框架的并行Eclat算法首先將水平數(shù)據(jù)格式轉(zhuǎn)換為垂直數(shù)據(jù)格式,然后利用位存儲機(jī)制進(jìn)行改進(jìn),最后利用前綴項進(jìn)行數(shù)據(jù)分區(qū)實現(xiàn)并行化。但是,針對工業(yè)過程控制中的海量數(shù)據(jù)將面臨如下問題:
1)頻繁1-項集所對應(yīng)的列長度加重內(nèi)存消耗,同時由兩個頻繁1-項集連接生成候選2-項集時,需要判斷連接條件,隨著項集長度的增加,頻繁的連接操作加重時間消耗;
2)由兩個頻繁k-項集連接生成候選(k+1)-項集時,生成的部分候選(k+1)-項集是非頻繁的,而無關(guān)項集的交集與并集操作為無效操作,徒增時間和空間消耗;
3)前綴項劃分?jǐn)?shù)據(jù)未考慮節(jié)點間負(fù)載均衡,導(dǎo)致各計算節(jié)點的計算量分布不均,降低算法的執(zhí)行效率和并行化性能。
根據(jù)1.2節(jié)對現(xiàn)有算法的分析與總結(jié),本文將以基于Spark分布式并行框架,針對工業(yè)過程操作數(shù)據(jù)集特性,對聚類關(guān)聯(lián)規(guī)則進(jìn)行定制化,并通過引入計算量與自適應(yīng)步長劃分策略對Eclat算法進(jìn)行優(yōu)化。
工業(yè)過程控制一般分為操作變量和狀態(tài)變量,其中操作變量為自變量,通過調(diào)節(jié)閥門開度、原料進(jìn)出口流量等條件,控制生產(chǎn)過程維持在某種狀態(tài)。狀態(tài)變量為因變量,因各種操作改變,使自身處于某種狀態(tài),不同狀態(tài)影響整個工業(yè)過程的生產(chǎn)效率和產(chǎn)出比率等。算法挖掘過程針對規(guī)則前件只包含操作變量,規(guī)則后件只包含狀態(tài)變量的強(qiáng)關(guān)聯(lián)規(guī)則,以此過濾無關(guān)項集的無效操作,使結(jié)果更具有針對性和約束性,提高算法挖掘效率。
此外,由于工業(yè)過程狀態(tài)數(shù)據(jù)是根據(jù)不同的工況,將過程控制在不同的狀態(tài),如果對工況不了解,就無法對目標(biāo)變量進(jìn)行分類,同時狀態(tài)之間沒有明確的界限和準(zhǔn)確的判斷方式,無法設(shè)定固定的分類標(biāo)準(zhǔn)。因此,算法利用聚類算法K-Means++,對其中無標(biāo)簽的單個或多指標(biāo)狀態(tài)變量進(jìn)行聚類。同時,工業(yè)控制過程中,連續(xù)型數(shù)據(jù)在操作變量數(shù)據(jù)中占據(jù)絕大部分,但是對于處理布爾或離散數(shù)據(jù)的關(guān)聯(lián)規(guī)則挖掘算法,不能直接進(jìn)行計算,因此利用1σ準(zhǔn)則對操作變量進(jìn)行離散化。
1)一階段數(shù)據(jù)分發(fā)
第一階段由水平數(shù)據(jù)集生成頻繁2-項集過程,如果按照數(shù)據(jù)自然分區(qū)分配各節(jié)點計算時,由于每條事務(wù)中數(shù)據(jù)項數(shù)量不同,會造成各計算節(jié)點的運算量不同,而第二階段的執(zhí)行需要等待第一階段所有task執(zhí)行完成后才執(zhí)行,造成部分節(jié)點出現(xiàn)運算饑餓。因此,改進(jìn)算法首先會計算每條事務(wù)數(shù)據(jù)產(chǎn)生2項集所需的計算量來分配數(shù)據(jù),保證每個計算節(jié)點的計算量相當(dāng)。每條事務(wù)數(shù)據(jù)的計算量由式(1)所示,其中φi表示第i條事務(wù)數(shù)據(jù)所需計算量,ti表示第i條事務(wù)中的項目數(shù)。
在計算每條事務(wù)需要的計算量后,按照計算量的大小進(jìn)行降序排序,同時得到數(shù)據(jù)集的總計算量φ,再根據(jù)計算節(jié)點個數(shù)N,計算步長并按照步長對數(shù)據(jù)進(jìn)行劃分。
2)三階段數(shù)據(jù)分發(fā)
設(shè)置樣本容量,然后對各父分區(qū)數(shù)據(jù)按照key值進(jìn)行水塘抽樣(Reservoir Sampling),通過對比各分區(qū)采樣量s與平均采樣率f,判斷該分區(qū)是否出現(xiàn)數(shù)據(jù)傾斜,若出現(xiàn)分區(qū)傾斜則進(jìn)行重采樣,直到所有分區(qū)采樣完成。s與f計算公式如式(2)、式(3)所示,其中,Pj為分區(qū)j記錄數(shù)總量,S為樣本容量,k為擴(kuò)容系數(shù),保證小數(shù)據(jù)量分區(qū)能夠采集足夠數(shù)據(jù)。
當(dāng)所有分區(qū)完成采樣后,計算樣本中各key值的占比權(quán)重Wij,并將采樣數(shù)據(jù)按照權(quán)重排序,計算總權(quán)重和分區(qū)步長Step,然后循環(huán)采樣數(shù)據(jù),當(dāng)累計權(quán)重達(dá)到步長限制,則累加前數(shù)據(jù)劃分為該分區(qū),并分配ID,直到劃分結(jié)束。Wij與Step計算公式如式(4)、式(5)所示。其中,Kj為分區(qū)j采樣的key集合,kij為j分區(qū)key值為i的個數(shù),M為分區(qū)個數(shù)。
按照采樣劃分結(jié)果對父分區(qū)數(shù)據(jù)進(jìn)行劃分,即保證相似數(shù)據(jù)在同一節(jié)點,也保證節(jié)點間數(shù)據(jù)均衡。
為了驗證改進(jìn)算法應(yīng)對海量數(shù)據(jù)的能力,通過設(shè)置對比實驗,并利用關(guān)聯(lián)規(guī)則通用的數(shù)據(jù)生成器IBM QuestMarket-Basket Synthetic Data Generator模擬生成10GB、20GB、30GB,事務(wù)數(shù)為10、20、30萬,項目數(shù)為1000的三個不同數(shù)據(jù)集,驗證改進(jìn)算法的性能提升。
1)加速比分析
加速比(Speedup)是指單處理器系統(tǒng)與并行處理器系統(tǒng)在執(zhí)行相同任務(wù)時,時間消耗的比值,被應(yīng)用于評價并行系統(tǒng)或程序并行化的性能和效果。本實驗通過在模擬生成的10G,20G,30G數(shù)據(jù)上,調(diào)整節(jié)點數(shù)為2,4,6進(jìn)行測試。其計算公式如式(6)所示。其中p指CPU數(shù)量,T1指單處理器執(zhí)行時間,Tp指p個處理器,并行執(zhí)行時間。實驗結(jié)果如圖1所示,為對比明顯,加入線性加速比。
由圖1分析可知,改進(jìn)算法隨著計算節(jié)點的不斷增加,加速比也隨之增加。但隨著節(jié)點數(shù)量的持續(xù)增加,各計算節(jié)點之間由于數(shù)據(jù)交換與傳輸?shù)臅r間也相對增加,因此算法的加速比隨之變緩。但是,由于改進(jìn)算法進(jìn)行過負(fù)載均衡優(yōu)化,使得挖掘過程中數(shù)據(jù)傳輸較少,網(wǎng)絡(luò)負(fù)載較輕。因此減緩較輕,并且隨著節(jié)點增加加速比提升更加明顯。實驗結(jié)果表明,該算法具備良好的并行化性能。
百香果(Passionfruit)為西番蓮科(Passifloraceaee)西番蓮屬(Passiflora L.),是一種多年生常綠藤本植物的果實[1,2],其營養(yǎng)豐富[3],香氣濃郁,口感酸甜,保健功效好,適宜各類人群食用[4]。
圖1 加速比測試
2)節(jié)點負(fù)載分析
節(jié)點負(fù)載通過對比集群中節(jié)點運行算法時各自的執(zhí)行時間,是判斷集群并行化能力的一個有效指標(biāo)。因此,實驗對比BPEcalt算法與SPEclat算法在10GB與20GB兩個數(shù)據(jù)下,設(shè)置最小支持度為0.05,在6個節(jié)點下各自運行的時間(單位:m)進(jìn)行分析,具體執(zhí)行結(jié)果如表1所示。由表分析可知,SPEclat算法未考慮均衡負(fù)載,使得各節(jié)點間任務(wù)分配不均衡,各節(jié)點完成時間差別較大,而BPEclat算法通過前綴項利用均衡策略將各節(jié)點的數(shù)據(jù)量進(jìn)行了均衡,因此各節(jié)點的完成時間相對均勻。實驗結(jié)果表明BPEclat算法能夠有效的均衡節(jié)點負(fù)載。
表1 SPEclat與BPEclat各節(jié)點執(zhí)行時間
TE過程是美國的一家化學(xué)公司給出的一個現(xiàn)實化工的模擬過程,該過程良好的模擬了復(fù)雜工業(yè)過程的典型特征,作為一個非線性、各設(shè)備之間具有時滯、非連續(xù)的和耦合特點的系統(tǒng),主要描述了裝置、物料和能量之間的非線性關(guān)系[14]。TE過程一共分化工反應(yīng)器、產(chǎn)品冷凝器、氣液分離器、循環(huán)壓縮機(jī)和汽提塔五個部分,該過程是內(nèi)部沒有反饋環(huán)的無反饋系統(tǒng),輸出受輸入影響但不影響輸入,同時內(nèi)部包含諸多動態(tài)影響因素,因此被廣泛應(yīng)用于參數(shù)調(diào)優(yōu)、過程配置和生產(chǎn)監(jiān)控等方面。該過程包含41個狀態(tài)變量和12個操縱變量。其中,41個狀態(tài)變量中有22個是連續(xù)測量的,19個是測物料成分的,22個連續(xù)測量值,編號XMEASl-XMESA22[15]。當(dāng)系統(tǒng)目標(biāo)值偏離期望值時,操作員可調(diào)整閥門開度等,調(diào)節(jié)原料進(jìn)口流量等可調(diào)節(jié)的變量,使得目標(biāo)值回到正常狀態(tài),而這些可調(diào)整的變量稱為操作變量。TE過程模型包括12個操作變量,它們編號分別為XMVl-XMVl2。
由于整個TE系統(tǒng)是復(fù)雜反應(yīng)單元的融合,而本章僅論證模型的實用性與算法的有效性。因此,僅選取系統(tǒng)的核心單元——反應(yīng)器,研究其中隱含的關(guān)聯(lián)規(guī)則組合,而表征其運行狀態(tài)的指標(biāo)參數(shù)包含反應(yīng)器壓力XMEAS7、反應(yīng)器液位XMEAS8、反應(yīng)器溫度XMEAS9三個,具體信息如表2所示。
表2 狀態(tài)變量
影響這些狀態(tài)的操作變量有物料D(XMV1)、物料E(XMV2)、物料A(XMV3)的入口流量,排放閥開合度(XMV6)反應(yīng)器冷凝水流量(XMV10)以及冷凝器冷卻水(XMV11),具體信息如表2所示。為驗證算法有效性,將反應(yīng)器控制環(huán)打開,采樣間隔6分鐘/次,手動控制96小時,即每一個變量屬性1920組,共11520組采樣數(shù)據(jù)。
表3 操作變量
1)狀態(tài)變量標(biāo)簽化
利用K-Means++算法設(shè)置迭代次數(shù)為1000,聚類10次,計算集合內(nèi)誤差平方和(Within Set Sum of Squared Error,WSSE),選擇收斂效果最好的一組,得到三個狀態(tài)變量的聚類中心如表4所示。
表4 狀態(tài)變量聚類中心
根據(jù)聚類結(jié)果對數(shù)據(jù)定義類標(biāo)簽,如表5所示。其中,XMEAS71表示狀態(tài)變量XMEAS7屬于第一個聚類中心,XMEAS72屬于第二個聚類中心,XMEAS73屬于第三個聚類中心,其他操作變量同理類推。
表5 帶聚類標(biāo)簽的TE數(shù)據(jù)
2)操作變量布爾化
采用1σ準(zhǔn)則對各變量進(jìn)行劃分,即在正態(tài)分布中σ代表標(biāo)準(zhǔn)差,μ代表均值,以μ-σ,μ+σ分別作為數(shù)據(jù)分段的上下限,而數(shù)值在(μ-σ,μ+σ)中分布的概率為0.68,在一定程度的反映數(shù)據(jù)的特征,具有較大可信度[16]。預(yù)處理得到各變量的分割點如表6所示。其中,XMV011表示操作變量XMV1屬于第一個區(qū)間,即,XMV012表示,XMV013表示,其他操作變量同理類推。
表6 操作變量TE分割區(qū)間
以離散化數(shù)據(jù)為輸入,設(shè)置最小支持度Min_sup=0.1,最小置信度Min_conf=0.6進(jìn)行挖掘,并將挖掘得到的操作規(guī)則信息以對應(yīng)的波動區(qū)間表示。如表7反應(yīng)器溫度XMEAS9低于正常值時的3條規(guī)則,其中2條規(guī)則都顯示反應(yīng)器溫度低于常值時,XMV10控制在[39.81,40.88],由于反應(yīng)器溫度偏低,需要降低冷卻水流量,以保證溫度回到正常值;另1條規(guī)則通過控制XMV1在[61.76,62.96],因為均是放熱反應(yīng),通過降低D進(jìn)料量,降低放熱,保證溫度回到正常值[17]。
表7 XMEAS9較低時反布爾化規(guī)則
表8反應(yīng)器溫度XMEAS9控制在正常范圍時的4條規(guī)則可以得出該操作員是一個有經(jīng)驗的操作員,因此處于正常狀態(tài)下的操作規(guī)則較多。由挖掘規(guī)則可知,為保證反應(yīng)器溫度處于正常狀態(tài),應(yīng)將E進(jìn)料量控制在[54.92,56.37],A進(jìn)料量控制在[31.69,37.27],排放閥控制在[69.92,91.80],反應(yīng)器冷卻水流量控制在[40.88,42.02],而其中每條規(guī)則中都有變量XMV6和XMV10,因此是主要控制變量,可以與其他變量配合使用,使反應(yīng)器溫度控制在正常情況中。
表8 XMEAS9正常時反布爾化規(guī)則
表9反應(yīng)器壓力XMEAS7控制在正常范圍時的1條規(guī)則可以得出要保證反應(yīng)器壓力處于正常狀態(tài),應(yīng)將排放閥控制在[38.57,69.92],由于其置信度為100%,說明排放閥是控制反應(yīng)器壓力的主要控制變量,結(jié)論符合工藝情況[18]。
表9 XMEAS7處于常值的反布爾化規(guī)則
然后,對TE過程中,XMEAS9與XMV10做定性分析,如圖3所示,通過冷凝器冷卻水流量調(diào)節(jié)反應(yīng)器散熱,從而調(diào)節(jié)反應(yīng)器溫度,當(dāng)反應(yīng)器溫度高于臨界值時,通過加快冷凝器冷卻水流量,加快反應(yīng)器散熱,降低反應(yīng)器溫度使其回到臨界值以下,因此,反應(yīng)器溫度與冷凝水流量呈現(xiàn)同增同減的正相關(guān)關(guān)系。如圖4所示,對XMEAS7與XMV6做定性分析,在TE過程中,利用排放閥開關(guān)比例控制反應(yīng)器中氣體含量,從而調(diào)節(jié)反應(yīng)器壓強(qiáng),當(dāng)反應(yīng)器壓強(qiáng)高于警戒值時,通過增加排放閥開關(guān)比例,增加反應(yīng)器中氣體排放,降低反應(yīng)器壓強(qiáng)使其回到警戒值以下,因此,反應(yīng)器壓強(qiáng)與排放閥開關(guān)比例呈現(xiàn)同增同減的正相關(guān)關(guān)系。由于該操作人員缺乏經(jīng)驗,使得排放閥控制與變壓器比例呈現(xiàn)負(fù)相關(guān)關(guān)系,并且操作間聯(lián)系性不強(qiáng),因此可以通過調(diào)節(jié)排放閥比例,達(dá)到準(zhǔn)確控制變壓器壓強(qiáng)的目的。
圖3 XMEAS9與XMV10定性分析
圖4 XMEAS7與XMV6定性分析
由以上分析可知該算法挖掘出的操作關(guān)聯(lián)規(guī)則符合工藝?yán)碚撗芯?,由圖5、圖6可知,通過分別控制支持度與置信度大小,挖掘得到不同數(shù)量和質(zhì)量的規(guī)則。當(dāng)支持度(置信度)不變,置信度(支持度)越小挖掘到的規(guī)則越多,支持度(置信度)越高,得到的規(guī)則質(zhì)量越高。利用工藝相關(guān)知識可以解釋大多數(shù)的規(guī)則,這正是所感興趣的,并且得到的規(guī)則具有較高的支持度和置信度。根據(jù)工藝知識,規(guī)則獲得解釋后,就可以用于指導(dǎo)過程生產(chǎn)操作。
圖5 最小支持度與規(guī)則數(shù)量關(guān)系(Min_conf=0.7)
圖6 最小置信度與規(guī)則數(shù)量關(guān)系(Min_sup=0.1)
本文提出了一種面向工業(yè)過程控制的分布式聚類關(guān)聯(lián)規(guī)則挖掘算法。針對關(guān)聯(lián)規(guī)則算法Eclat挖掘過程中的執(zhí)行流程與數(shù)據(jù)分區(qū)問題,引入計算量與自適應(yīng)步長劃分策略,通過實驗驗證,改進(jìn)算法極大降低計算過程的時間和空間復(fù)雜度,提高算法處理海量數(shù)據(jù)的能力。并應(yīng)用于TE過程中的操作關(guān)聯(lián)規(guī)則提取,相較于傳統(tǒng)的經(jīng)驗分析,專家系統(tǒng)等方式,聚類關(guān)聯(lián)規(guī)則能夠有效利用歷史數(shù)據(jù)之中隱含的信息指導(dǎo)生產(chǎn)。實驗結(jié)果表明,該方法能夠從復(fù)雜的工業(yè)生產(chǎn)過程中快速發(fā)掘出有用的、符合實際生產(chǎn)情況的關(guān)聯(lián)規(guī)則,有助于提升工業(yè)生產(chǎn)過程的智能化程度。