陶世峰,楊 巍,宋 旋,李 剛,劉 佳
(1.中鐵大橋局集團(tuán)有限公司科技與信息化部,湖北武漢 430050;2.中鐵橋梁科學(xué)研究院有限公司信息化建設(shè)管理部,湖北武漢 430050)
企業(yè)數(shù)據(jù)隨著生產(chǎn)經(jīng)營的發(fā)展會形成流式數(shù)據(jù)結(jié)構(gòu),給企業(yè)流式數(shù)據(jù)的挖掘與管理帶來了一定的難度[1-3]。對于企業(yè)的流式數(shù)據(jù)來說,缺少可分類與過濾的相關(guān)數(shù)據(jù)特征,是流式數(shù)據(jù)挖掘的一個難點(diǎn)。運(yùn)用統(tǒng)一編碼形成企業(yè)流式數(shù)據(jù)挖掘特征是解決這一問題的關(guān)鍵[4-6]。
企業(yè)流式數(shù)據(jù)需要建立以應(yīng)用標(biāo)準(zhǔn)、數(shù)據(jù)標(biāo)準(zhǔn)、技術(shù)標(biāo)準(zhǔn)為主要內(nèi)容的相關(guān)規(guī)范和標(biāo)準(zhǔn),推動企業(yè)信息系統(tǒng)的深度集成、數(shù)據(jù)共享和深化應(yīng)用。以上需要有高效的數(shù)據(jù)挖掘方法做支撐,分期逐步實(shí)現(xiàn)企業(yè)基礎(chǔ)數(shù)據(jù)統(tǒng)一編碼與數(shù)據(jù)挖掘內(nèi)容的統(tǒng)一維護(hù)、查詢與系統(tǒng)間的數(shù)據(jù)集成共享,加強(qiáng)數(shù)據(jù)運(yùn)營管理能力的提升,通過數(shù)據(jù)挖掘切實(shí)發(fā)現(xiàn)企業(yè)管理中存在的問題,強(qiáng)化企業(yè)數(shù)據(jù)管理的信息化支撐,更好地實(shí)現(xiàn)信息資源充分共享,信息資源利用效率最大化。綜合以上方面目前取得的研究成果,應(yīng)用數(shù)據(jù)挖掘技術(shù)設(shè)計(jì)一種企業(yè)流式數(shù)據(jù)的挖掘算法。
流式數(shù)據(jù)為不同時間段引入的數(shù)據(jù),缺少統(tǒng)一的可識別特征,通過對碼段進(jìn)行組合、排序,每段碼段調(diào)用碼段管理中定義的特征碼數(shù)據(jù)、碼值生成規(guī)則產(chǎn)生碼段編碼,再根據(jù)碼段順序拼接碼段值,形成完整的數(shù)據(jù)編碼及統(tǒng)一挖掘特征。將多個數(shù)據(jù)資源同時使用到的編碼碼段進(jìn)行管理,建立公共的可復(fù)用的編碼碼段管理。對每一個元數(shù)據(jù)定義一個編碼規(guī)則,生成的編碼保存在元數(shù)據(jù)模型中指定的編碼字段中?;A(chǔ)數(shù)據(jù)要統(tǒng)一編碼規(guī)范,對企業(yè)基礎(chǔ)數(shù)據(jù)按照類型分別制定編碼規(guī)范,如圖1 所示。
圖1 企業(yè)基礎(chǔ)數(shù)據(jù)編碼規(guī)范
基礎(chǔ)數(shù)據(jù)編碼規(guī)范包括適用范圍、編碼概述、編碼方式等。主要遵循以下原則:
1)每一編碼應(yīng)具有唯一性;
2)便于擴(kuò)充,考慮今后的發(fā)展,各類編碼應(yīng)預(yù)留足夠的位數(shù);
3)綜合分析現(xiàn)有各信息系統(tǒng)的編碼,與原有編碼盡量兼容;
4)編制中應(yīng)考慮必要的反復(fù)確認(rèn)過程,各部門應(yīng)指定熟悉業(yè)務(wù)的人員專門配合編碼的編制事宜,以使編碼更符合實(shí)際應(yīng)用;
5)編碼內(nèi)容包含基礎(chǔ)數(shù)據(jù)說明、主要數(shù)據(jù)項(xiàng)、編碼規(guī)則等。
采用動態(tài)隨機(jī)方式進(jìn)行企業(yè)基礎(chǔ)流式數(shù)據(jù)的統(tǒng)一編碼傳輸,所使用的數(shù)據(jù)包由信宿節(jié)點(diǎn)的編碼數(shù)據(jù)信息、編碼向量、包頭構(gòu)成[7]。數(shù)據(jù)包格式具體如圖2 所示。
圖2 數(shù)據(jù)包格式
其中,編碼數(shù)據(jù)信息是利用編碼向量進(jìn)行編碼計(jì)算所獲得的值,用于描述數(shù)據(jù)包屬性信息[8]。
在企業(yè)基礎(chǔ)流式數(shù)據(jù)統(tǒng)一編碼傳輸中,假設(shè)在組播率為h的情況下,信源發(fā)布了主題包P={p1,p2,…pn} 。在發(fā)布主題數(shù)據(jù)p1時,所播出的信息是{p11,p12,…p1h}[9]。用I(e) 表示輸出信道傳輸e∈E對應(yīng)的編碼數(shù)據(jù)信息,其中輸出信道的表達(dá)式如下:
式(1)中,i=tail(e)表示輸出信道尾部;j=head(e)表示輸出信道頭部。
利用編碼節(jié)點(diǎn)k向各輸出信道e生成一個編碼向量ne=(ne,1,ne,2,…,ne,h),其中,h表示編碼向量長度,所生成的向量是隨機(jī)的[10]。則編碼數(shù)據(jù)信息是由主題數(shù)據(jù)和編碼向量累積而成的,可以用式(2)來表示:
式(2)中,xi代表原始數(shù)據(jù)。
此時,對應(yīng)e的各個編碼向量ne=(ne,1,ne,2,…,ne,h)形成了一種編碼方案[11]。其中的編碼是隨機(jī)網(wǎng)絡(luò)編碼,將方案記為ψ,其具體表達(dá)式如下:
式(3)中,i表示正整數(shù);| |E代表輸出信道向量E的元素個數(shù)。此時信宿節(jié)點(diǎn)所收到的編碼數(shù)據(jù)信息可以認(rèn)為是很多編碼節(jié)點(diǎn)進(jìn)行多次編碼計(jì)算以后獲得的全局編碼數(shù)據(jù)。用式(4)來表示:
式(4)中,gi代表信宿節(jié)點(diǎn)編碼向量,可以用式(5)來表示;pi表示第i個主題包。
式(5)中,Mk,i代表編碼節(jié)點(diǎn)k對應(yīng)的第i個輸入向量。信宿節(jié)點(diǎn)所收到的全部編碼包的對應(yīng)編碼值和編碼向量,構(gòu)成了一個統(tǒng)一編碼傳輸?shù)膶?yīng)矩陣方程組[12]。具體如式(6)所示:
式(6)中,gnh代表第n行第h個編碼向量;In表示第n個編碼數(shù)據(jù)信息。根據(jù)矩陣線性方程組的實(shí)際可解條件,若矩陣是滿秩的,則信宿即可成功解碼,從而獲取原始數(shù)據(jù)xi,實(shí)現(xiàn)企業(yè)基礎(chǔ)流式數(shù)據(jù)統(tǒng)一編碼,形成可識別的挖掘特征。
形成可識別特征后,對一些無關(guān)的數(shù)據(jù)進(jìn)行過濾,可以大幅度提高挖掘效率。但是,流式數(shù)據(jù)在傳統(tǒng)的過濾算法下效率很低[13-15]。該文改進(jìn)的過濾算法是在過濾算法思想的基礎(chǔ)上,通過判斷分類區(qū)域是流式數(shù)據(jù)的動態(tài)區(qū)域還是靜態(tài)區(qū)域,來判斷能不能刪除一些影響挖掘的區(qū)域,減少挖掘數(shù)據(jù)的冗余干擾。這種改進(jìn)后的分類過濾算法的設(shè)計(jì)流程如下:
1)針對企業(yè)的流式數(shù)據(jù)不斷進(jìn)入數(shù)據(jù)庫的情況,設(shè)計(jì)一種數(shù)據(jù)結(jié)構(gòu)kd-tree,對kd-tree 中的存儲數(shù)據(jù)單元n.count 計(jì)算編碼特征如下:
n.total=(xi,min,xi,max),i=1,2,…,d。
2)假如企業(yè)流式數(shù)據(jù)編碼后的未分類結(jié)構(gòu)為CC0,設(shè)置rt.SC=CC0,其中,rt.SC是可以看出數(shù)據(jù)的自然中心。假設(shè)這些參數(shù)都是隨機(jī)的,那么有Ci.count=0 和Ci.total=0。
3)對于每個數(shù)據(jù)存儲單位n,作如下假設(shè):
假如n.SC=pn.SC,其中,pn.SC是單元n上一層單元中的子分區(qū)。
從n.SC中可以計(jì)算n.center 的流式數(shù)據(jù)編碼分類中心Ci,再計(jì)算和,其中,n.center 是結(jié)點(diǎn)n的分類中心。
4)假如p=1,說明流式數(shù)據(jù)的分類不是最優(yōu)結(jié)果,可產(chǎn)生新的分區(qū)CCp,其中,p是迭代計(jì)算的次數(shù)。
5)一旦CCp中分區(qū)后形成CCactive,那么rt.SC=CCp和rt.SCactive=CCactive,其中,rt.SCactive是中心候選集。設(shè)置Ci.count=0 和Ci.total=0。
6)設(shè)置p=p+1,且繼續(xù)產(chǎn)生新的流式數(shù)據(jù)分區(qū)CCp。跳到第五步繼續(xù)執(zhí)行直到簇中心不再發(fā)生變化。
在完成過濾優(yōu)化后,針對企業(yè)流式數(shù)據(jù)完成挖掘,該文提出一種改進(jìn)的Apriori 算法,并應(yīng)用到優(yōu)化后的企業(yè)流式數(shù)據(jù)中,如下:
1)掃描企業(yè)存儲流式數(shù)據(jù)的數(shù)據(jù)庫D,產(chǎn)生過濾后的數(shù)據(jù)集合C1,計(jì)算其中各個數(shù)據(jù)待挖掘特征的特征相似度[16]。
2)刪除特征相似度較小的分區(qū),形成一個優(yōu)化挖掘數(shù)據(jù)集L1。
3)在由Lk-1進(jìn)行迭代計(jì)算,形成特征最優(yōu)集合Ck以前,需要統(tǒng)計(jì)Lk-1中所有數(shù)據(jù)超過特征相似度閾值的次數(shù)。
4)刪除Lk-1中特征相速度不相干的k-1 次的項(xiàng)目集,修剪后標(biāo)記為
6)對Ck進(jìn)行裁剪,得到Lk,計(jì)算Lk中k-項(xiàng)集的個數(shù),如果個數(shù)小于k+1,則不再進(jìn)行k+1 項(xiàng)集的運(yùn)算,跳出循環(huán);否則轉(zhuǎn)到步驟3)繼續(xù)執(zhí)行。至此完成企業(yè)流式數(shù)據(jù)挖掘算法的設(shè)計(jì)。
通過Java 實(shí)現(xiàn)企業(yè)流式數(shù)據(jù)統(tǒng)一編碼挖掘算法的設(shè)計(jì),并在實(shí)驗(yàn)仿真平臺上搭載設(shè)計(jì)的算法完成驗(yàn)證。仿真場景參數(shù)的具體設(shè)置如表1 所示。
表1 設(shè)置的仿真場景參數(shù)
在ONE 仿真平臺中接入某企業(yè)流式數(shù)據(jù)存儲系統(tǒng),將系統(tǒng)中的基礎(chǔ)流式數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù)。在不同數(shù)據(jù)生存時間下,對所設(shè)計(jì)算法的耗時、挖掘成功率、負(fù)載率三項(xiàng)指標(biāo)進(jìn)行測試。其中,負(fù)載率的測試結(jié)果如圖3 所示。
圖3 負(fù)載率測試結(jié)果
根據(jù)圖3 可知,隨著生存時間的提升,負(fù)載率雖然有所提升,但整體提升步調(diào)比較平穩(wěn)。說明在算法的數(shù)據(jù)挖掘中,消耗的挖掘資源整體較少。成功挖掘率結(jié)果如圖4 所示。
圖4 成功挖掘率測試結(jié)果
根據(jù)圖4 可知,設(shè)計(jì)算法成功挖掘率隨著生存時間提升而下降。但在數(shù)據(jù)數(shù)量級為700 時,仍然能夠維持80%左右的成功挖掘率,證明設(shè)計(jì)算法能夠充分利用數(shù)據(jù)資源。耗時測試結(jié)果如表2所示。
根據(jù)表2可知,設(shè)計(jì)算法在生存時間低于300 min的情況下,耗時較低,在生存時間高于300 min 的情況下耗時較高,但整體耗時較低。
表2 耗時測試結(jié)果
該文設(shè)計(jì)了一種企業(yè)基礎(chǔ)流式數(shù)據(jù)統(tǒng)一編碼轉(zhuǎn)發(fā)算法,實(shí)現(xiàn)了企業(yè)工控網(wǎng)絡(luò)資源的充分利用,對于企業(yè)的數(shù)據(jù)傳輸有很重要的意義。在研究中,由于時間和精力的不足,未能對算法安全進(jìn)行更加深入的研究,將會在日后進(jìn)行更加深入的研究。