倪家明,張 耀,劉 鵬,賀小剛,王丹丹
(1.國網天津市電力公司,天津 300010;2.天津三源電力信息技術股份有限公司,天津 300010)
關聯規則提取的主要方向是實時云數據挖掘,將該規則應用到數據挖掘過程中,能夠展現出不同數據之間的關系[1-2]。隨著因特網數據規模的不斷擴大,各維度云數據的復雜性越來越高,對實時云數據關聯規則展開有效提取有利于后期的數據運維分析[3]。
文獻[4]中設計了基于Spark 的關聯規則并行化挖掘與提取方法,該方法能夠發現大量實時云數據之間的聯系,并確定數據之間的連續性,通過關聯分析過程實現規則挖掘與提取。文獻[5]中設計了基于多目標協同進化遺傳算法的關聯規則提取方法,該方法利用帕累托原理優化遺傳種群個體,然后利用個體相似度的基因型完成個體配對,并分割變異種群,再利用精英種群保存交叉種群的方式求取帕累托最優解集,從而尋找連續型數值屬性,完成對規則的提取。然而,在實際應用中發現,傳統提取方法的項集標記結果不全面,易導致實例數據集與實際情況不一致。為此,該文設計了基于機器學習的實時云數據關聯規則提取方法,利用其為數據運維分析奠定基礎。
該文在貝葉斯概率支持下設計機器學習網絡模型,并調整隱層和可視層權重參數,由此生成深度網絡目標數據。機器學習網絡架構如圖1 所示。

圖1 機器學習網絡架構
圖1 中,多層玻爾茲曼集組成了一個機器學習網絡。神經網絡將神經元分為顯性神經元和隱性神經元,上層和下層神經元之間有聯想記憶單元,這一聯結是沒有方向的,可用于實現聯想記憶功能[6-7]。
機器學習網絡訓練主要包括無監督訓練和調優兩個步驟:
步驟一:無監督訓練。特定任務是分層訓練受限制玻爾茲曼機器,每一層輸出結果都可作為上層輸入層[8]。上部神經元被標記時,需要進行標記聯合訓練[9]。
步驟二:調優。調優主要分兩個階段進行:認知階段和制作階段。其中,認知階段是依據機器學習模型輸入特征信息,并逐層輸出結構,再依據梯度下降法生成逐層權重參數。基本狀態信息由生成階段的頂層標簽標注并與向下權重信息組成,向上權重信息也在該階段被修改[10-11]。
在機器學習網絡的特征提取過程中,需要對輸入信號進行向量表示,并對其進行訓練。最高級別的聯想記憶單元根據下級提供的線索來劃分任務[12]。通過基于標記數據的前饋神經網絡,機器學習網絡能夠精確調整分類性能,并在最后一層訓練中進行識別[13]。與直接使用前向神經網絡相比,該方法具有更高的效率,因為機器學習網絡只需要修改權重參數就可以進行局部訓練[14],因此訓練速度快、收斂時間短。
圖2 中顯示了所采用的系統模型結構。左側為任務隊列,右側為資源隊列,中間為負責任務與資源匹配的中央服務器。

圖2 任務調度模型
該模型在加入輔助變量后產生虧損隊列,該隊列表示當前收益與目標收益差值,通過加入調節權重能夠控制系統收益平衡,以最小化構建排隊處理與運維任務[15],具體過程如下:根據資源聚類內容,生成調度隊列,保證隊列資源分配合理;對于一個隊列,選擇合適的輔助資源,從中挑選最大值;在最大挑選結果支持下,獲取生成資源向量;根據不同公式間生成關系,更新任務、資源向量[16]。
假設存在m個項目集合I={i1,i2,…,im},確定事務數據庫D,其中每個項集T都具有唯一標識符TID。若項目集為X?I且X?T,則事務集T包含項目集X,且X?Y蘊涵形式為關聯規則的一般表示。
關聯規則包括支持度和可信度兩個方面,當事務集同時支持多個事務時,可將其歸納到同一個事物數據庫中,該數據庫為關聯規則支持度。支持度對表達規則的頻率提供支持,并描述數據集中規則的前因和前因出現的比例。用minsup表示最小支持度,support(X)表示支持度統計顯著值。
對已知的事務數據庫D來說,在支持事務集X的事務中,還有支持事務集的事務,即關聯規則X?Y的置信度。置信度代表著規則的強度,描述了規則在滿足其前提條件下發生的可能性。用minconf 表示規則的最小可信度,置信度大于最小可信度的關聯規則成為強規則。
此關聯規則基于以下條件建立:
1)事務數據庫中,至少存在一個支持度,作為整個數據庫的支持度;
2)交易數據庫中,至少存在一個支持度,該支持度(在支持事務集X的事務中,還有支持事務集Y的事務)作為整個數據庫的支持度。
關聯規則挖掘問題在于,在事務數據庫中,指定一個支持度最低值和一個信任度最低值,確定一個支持度和信任度高于兩個預定值規則。
關聯規則提取可以分為如下兩步:
1)找到一組項集,其支持程度不低于用戶給出的最小支持度,即為強項集;
2)從強項集中導出關聯規則,對于每一個強點集A,如果B?A且B≠?,就有一個關聯規則B?(A-B)。
因為不同項目集的數量較大,所以要計算出所有項目集的支持是不可能的。機器學習算法是一種快速有效的方法,該方法將多次掃描數據庫中的大型項目集。
為方便表述,假設事物中項目集按照字典順序排列,該序列中包含k項集,每一個項集有一個計數域count,以儲存對項集的支持度。count≥minsup的k項集稱強k項集,記為Lk。若r為強項集,則所有非空白項也是r。反之,如果一個項目集的非空子集不是強項集,那么其就不是強項集。
基于此,求取Lk強項集Ck,該項集中任意一個項集的非空子集為強項集,即:

其中,s?r,且s≠?,support(s)≥minsup。
機器學習掃描原理為:經過k次掃描后,數據庫D中的強項集為Lk。經過k-1 次掃描后,得到的數據在Lk-1基礎上,可由Lk求取出候選強項集集合Ck。
對于任意一個規則,如果在強項集Ck中出現,那么該項集的計數域count將會增加1。在完成掃描后,強項集Ck的count≥minsup所有項集均加入Lk中。
對事務中每一次計算Ck支持的已刪除項集,調用不包含任何標簽的事務,在以后的掃描計數中計算候選項集的數目,支持的記錄數目比實際事務在數據庫中的數目少,且隨著k值的增大,差異也隨之增大,從而有效地減少候選項集的計數,提高算法的效率,數據庫以及優化過程數據庫變化如圖3 所示。

圖3 數據庫以及優化過程數據庫變化
依據數據庫優化結果,描述關聯規則運維流程:
Stepl:以數據庫D為例,輸入最小支持度,通過一次掃描計算每個項目集的支持度,得到集L1;
Step2:為了產生頻繁的k個項目集Lk,要按照已優化的連通性方法產生k-1 個項目集Lk-1(項目集中的項目按其出現在整個數據庫中的頻率遞增);
Step3:計算Lk-1項頻率,然后標記頻率小于k+1的項,刪除包含任意元素的頻繁項集合,得到一個新的較小的頻繁項集合k-1;
Step4:沒有任何項目集的事務被標記為Delete,隨后單程掃描數據庫,計算每一項的支持度Ck;
Step5:從Ck中刪除不符合最低支持度項目集,并形成Lk;
Step6:重復Step2~Step5,直到無法生成一組新的頻繁項目集為止。
為驗證基于機器學習的實時云數據關聯規則提取與運維分析方法的合理性,設計如下實驗。分別使用傳統的基于Spark 的關聯規則并行化挖掘與提取方法和基于多目標協同進化遺傳算法的關聯規則提取方法作為對比,與該文方法共同完成性能驗證。

表1 實例數據分析
不同方法對實時云數據關聯規則的提取結果如圖4 所示。
由圖4 可知,應用基于Spark 的提取方法后,獲取的實例數據集與實際情況不符,存在10 個項集;應用基于多目標協同進化遺傳算法的提取方法后,獲取的實例數據集與實際情況不符,存在9 個項集;應用基于機器學習的提取方法后,獲取的實例數據集與實際情況一致,存在7 個項集。由此可知,該文方法的提取效果更好。

圖4 不同方法的關聯規則提取結果
在生成大型實時云數據項目集后,利用機器學習法過濾強項集,減少繁瑣計算步驟,避免了對機器學習算法的裁剪,減少了循環次數。實驗結果表明,該文設計的基于機器學習的實時云數據關聯規則提取方法是有效可行的,可為數據運維分析奠定良好的基礎。