陶世峰,楊 巍,宋 旋,李 剛,劉 佳
(1.中鐵大橋局集團有限公司科技與信息化部,湖北武漢 430050;2.中鐵橋梁科學研究院有限公司信息化建設管理部,湖北武漢 430050)
企業數據隨著生產經營的發展會形成流式數據結構,給企業流式數據的挖掘與管理帶來了一定的難度[1-3]。對于企業的流式數據來說,缺少可分類與過濾的相關數據特征,是流式數據挖掘的一個難點。運用統一編碼形成企業流式數據挖掘特征是解決這一問題的關鍵[4-6]。
企業流式數據需要建立以應用標準、數據標準、技術標準為主要內容的相關規范和標準,推動企業信息系統的深度集成、數據共享和深化應用。以上需要有高效的數據挖掘方法做支撐,分期逐步實現企業基礎數據統一編碼與數據挖掘內容的統一維護、查詢與系統間的數據集成共享,加強數據運營管理能力的提升,通過數據挖掘切實發現企業管理中存在的問題,強化企業數據管理的信息化支撐,更好地實現信息資源充分共享,信息資源利用效率最大化。綜合以上方面目前取得的研究成果,應用數據挖掘技術設計一種企業流式數據的挖掘算法。
流式數據為不同時間段引入的數據,缺少統一的可識別特征,通過對碼段進行組合、排序,每段碼段調用碼段管理中定義的特征碼數據、碼值生成規則產生碼段編碼,再根據碼段順序拼接碼段值,形成完整的數據編碼及統一挖掘特征。將多個數據資源同時使用到的編碼碼段進行管理,建立公共的可復用的編碼碼段管理。對每一個元數據定義一個編碼規則,生成的編碼保存在元數據模型中指定的編碼字段中。基礎數據要統一編碼規范,對企業基礎數據按照類型分別制定編碼規范,如圖1 所示。

圖1 企業基礎數據編碼規范
基礎數據編碼規范包括適用范圍、編碼概述、編碼方式等。主要遵循以下原則:
1)每一編碼應具有唯一性;
2)便于擴充,考慮今后的發展,各類編碼應預留足夠的位數;
3)綜合分析現有各信息系統的編碼,與原有編碼盡量兼容;
4)編制中應考慮必要的反復確認過程,各部門應指定熟悉業務的人員專門配合編碼的編制事宜,以使編碼更符合實際應用;
5)編碼內容包含基礎數據說明、主要數據項、編碼規則等。
采用動態隨機方式進行企業基礎流式數據的統一編碼傳輸,所使用的數據包由信宿節點的編碼數據信息、編碼向量、包頭構成[7]。數據包格式具體如圖2 所示。

圖2 數據包格式
其中,編碼數據信息是利用編碼向量進行編碼計算所獲得的值,用于描述數據包屬性信息[8]。
在企業基礎流式數據統一編碼傳輸中,假設在組播率為h的情況下,信源發布了主題包P={p1,p2,…pn} 。在發布主題數據p1時,所播出的信息是{p11,p12,…p1h}[9]。用I(e) 表示輸出信道傳輸e∈E對應的編碼數據信息,其中輸出信道的表達式如下:
式(1)中,i=tail(e)表示輸出信道尾部;j=head(e)表示輸出信道頭部。
利用編碼節點k向各輸出信道e生成一個編碼向量ne=(ne,1,ne,2,…,ne,h),其中,h表示編碼向量長度,所生成的向量是隨機的[10]。則編碼數據信息是由主題數據和編碼向量累積而成的,可以用式(2)來表示:
式(2)中,xi代表原始數據。
此時,對應e的各個編碼向量ne=(ne,1,ne,2,…,ne,h)形成了一種編碼方案[11]。其中的編碼是隨機網絡編碼,將方案記為ψ,其具體表達式如下:
式(3)中,i表示正整數;| |E代表輸出信道向量E的元素個數。此時信宿節點所收到的編碼數據信息可以認為是很多編碼節點進行多次編碼計算以后獲得的全局編碼數據。用式(4)來表示:
式(4)中,gi代表信宿節點編碼向量,可以用式(5)來表示;pi表示第i個主題包。
式(5)中,Mk,i代表編碼節點k對應的第i個輸入向量。信宿節點所收到的全部編碼包的對應編碼值和編碼向量,構成了一個統一編碼傳輸的對應矩陣方程組[12]。具體如式(6)所示:
式(6)中,gnh代表第n行第h個編碼向量;In表示第n個編碼數據信息。根據矩陣線性方程組的實際可解條件,若矩陣是滿秩的,則信宿即可成功解碼,從而獲取原始數據xi,實現企業基礎流式數據統一編碼,形成可識別的挖掘特征。
形成可識別特征后,對一些無關的數據進行過濾,可以大幅度提高挖掘效率。但是,流式數據在傳統的過濾算法下效率很低[13-15]。該文改進的過濾算法是在過濾算法思想的基礎上,通過判斷分類區域是流式數據的動態區域還是靜態區域,來判斷能不能刪除一些影響挖掘的區域,減少挖掘數據的冗余干擾。這種改進后的分類過濾算法的設計流程如下:
1)針對企業的流式數據不斷進入數據庫的情況,設計一種數據結構kd-tree,對kd-tree 中的存儲數據單元n.count 計算編碼特征如下:
n.total=(xi,min,xi,max),i=1,2,…,d。
2)假如企業流式數據編碼后的未分類結構為CC0,設置rt.SC=CC0,其中,rt.SC是可以看出數據的自然中心。假設這些參數都是隨機的,那么有Ci.count=0 和Ci.total=0。
3)對于每個數據存儲單位n,作如下假設:
假如n.SC=pn.SC,其中,pn.SC是單元n上一層單元中的子分區。
從n.SC中可以計算n.center 的流式數據編碼分類中心Ci,再計算和,其中,n.center 是結點n的分類中心。
4)假如p=1,說明流式數據的分類不是最優結果,可產生新的分區CCp,其中,p是迭代計算的次數。
5)一旦CCp中分區后形成CCactive,那么rt.SC=CCp和rt.SCactive=CCactive,其中,rt.SCactive是中心候選集。設置Ci.count=0 和Ci.total=0。
6)設置p=p+1,且繼續產生新的流式數據分區CCp。跳到第五步繼續執行直到簇中心不再發生變化。
在完成過濾優化后,針對企業流式數據完成挖掘,該文提出一種改進的Apriori 算法,并應用到優化后的企業流式數據中,如下:
1)掃描企業存儲流式數據的數據庫D,產生過濾后的數據集合C1,計算其中各個數據待挖掘特征的特征相似度[16]。
2)刪除特征相似度較小的分區,形成一個優化挖掘數據集L1。
3)在由Lk-1進行迭代計算,形成特征最優集合Ck以前,需要統計Lk-1中所有數據超過特征相似度閾值的次數。
4)刪除Lk-1中特征相速度不相干的k-1 次的項目集,修剪后標記為
6)對Ck進行裁剪,得到Lk,計算Lk中k-項集的個數,如果個數小于k+1,則不再進行k+1 項集的運算,跳出循環;否則轉到步驟3)繼續執行。至此完成企業流式數據挖掘算法的設計。
通過Java 實現企業流式數據統一編碼挖掘算法的設計,并在實驗仿真平臺上搭載設計的算法完成驗證。仿真場景參數的具體設置如表1 所示。

表1 設置的仿真場景參數
在ONE 仿真平臺中接入某企業流式數據存儲系統,將系統中的基礎流式數據作為實驗數據。在不同數據生存時間下,對所設計算法的耗時、挖掘成功率、負載率三項指標進行測試。其中,負載率的測試結果如圖3 所示。

圖3 負載率測試結果
根據圖3 可知,隨著生存時間的提升,負載率雖然有所提升,但整體提升步調比較平穩。說明在算法的數據挖掘中,消耗的挖掘資源整體較少。成功挖掘率結果如圖4 所示。

圖4 成功挖掘率測試結果
根據圖4 可知,設計算法成功挖掘率隨著生存時間提升而下降。但在數據數量級為700 時,仍然能夠維持80%左右的成功挖掘率,證明設計算法能夠充分利用數據資源。耗時測試結果如表2所示。
根據表2可知,設計算法在生存時間低于300 min的情況下,耗時較低,在生存時間高于300 min 的情況下耗時較高,但整體耗時較低。

表2 耗時測試結果
該文設計了一種企業基礎流式數據統一編碼轉發算法,實現了企業工控網絡資源的充分利用,對于企業的數據傳輸有很重要的意義。在研究中,由于時間和精力的不足,未能對算法安全進行更加深入的研究,將會在日后進行更加深入的研究。