姚鵬飛
(92493 部隊(duì),遼寧 葫蘆島 125000)
作戰(zhàn)數(shù)據(jù)是維系作戰(zhàn)指揮信息系統(tǒng)的“血液”,作戰(zhàn)數(shù)據(jù)質(zhì)量的高低直接影響系統(tǒng)的發(fā)揮效率[1]。作戰(zhàn)數(shù)據(jù)根據(jù)屬性劃分,主要包括作戰(zhàn)基礎(chǔ)數(shù)據(jù)、動(dòng)態(tài)數(shù)據(jù)和指揮決策數(shù)據(jù),近年來(lái),隨著作戰(zhàn)相關(guān)任務(wù)量的持續(xù)增加和信息化手段的不斷提升,基于這3種數(shù)據(jù)類(lèi)型上設(shè)計(jì)的各類(lèi)作戰(zhàn)數(shù)據(jù)信息系統(tǒng)也日益增多,這些數(shù)據(jù)對(duì)于首長(zhǎng)機(jī)關(guān)指揮決策、部隊(duì)遂行各類(lèi)軍事任務(wù)、信息化裝備效能發(fā)揮起著重要的支撐作用[2],數(shù)據(jù)的正確性、一致性、完整性、可靠性要求越來(lái)越高。目前,各類(lèi)信息系統(tǒng)數(shù)據(jù)的數(shù)據(jù)質(zhì)量檢查主要依靠人工判查和內(nèi)置的數(shù)據(jù)檢驗(yàn)規(guī)則來(lái)完成,能夠?qū)崿F(xiàn)對(duì)系統(tǒng)中單個(gè)數(shù)據(jù)項(xiàng)完整性、正確性的約束檢查,但對(duì)于存在關(guān)聯(lián)關(guān)系的數(shù)據(jù)項(xiàng)之間的一致性約束檢查還不夠完善。
針對(duì)現(xiàn)有作戰(zhàn)數(shù)據(jù)信息系統(tǒng)有關(guān)聯(lián)關(guān)系數(shù)據(jù)項(xiàng)所存在的問(wèn)題特點(diǎn),在梳理分析影響數(shù)據(jù)質(zhì)量因素和現(xiàn)有方法不足的基礎(chǔ)上,通過(guò)引入關(guān)聯(lián)規(guī)則挖掘方法,使用FP-tree 挖掘數(shù)據(jù)庫(kù)中的2-頻繁數(shù)據(jù)項(xiàng),獲取數(shù)據(jù)項(xiàng)之間的有效關(guān)聯(lián)關(guān)系,以此來(lái)檢測(cè)人工填報(bào)數(shù)據(jù)可能出現(xiàn)的錯(cuò)誤。通過(guò)與信息系統(tǒng)中現(xiàn)有的審核規(guī)則相結(jié)合,可以彌補(bǔ)人工判查存在的不足,有效提高了數(shù)據(jù)質(zhì)量。
數(shù)據(jù)作為信息系統(tǒng)產(chǎn)生的產(chǎn)品,像產(chǎn)品一樣進(jìn)行管理,需要質(zhì)量保證[3]。通常,數(shù)據(jù)質(zhì)量問(wèn)題可分為4 類(lèi),即單數(shù)據(jù)源模式層問(wèn)題、單數(shù)據(jù)源實(shí)例層問(wèn)題、多數(shù)據(jù)源模式層問(wèn)題以及多數(shù)據(jù)源實(shí)例層問(wèn)題[4]。在基于人工錄入的信息系統(tǒng)中,數(shù)據(jù)質(zhì)量的主要問(wèn)題可以歸結(jié)為單數(shù)據(jù)源實(shí)例層問(wèn)題,典型的表現(xiàn)形式是拼寫(xiě)錯(cuò)誤、相似重復(fù)記錄和互相矛盾的字段。數(shù)據(jù)質(zhì)量維度通常采用4 個(gè)指標(biāo)進(jìn)行衡量,即數(shù)據(jù)一致性、數(shù)據(jù)正確性、數(shù)據(jù)完整性和數(shù)據(jù)可靠性[5-6]。
數(shù)據(jù)一致性:主要是指數(shù)據(jù)或數(shù)據(jù)項(xiàng)之間的邏輯關(guān)系是否正確,是否存在前后矛盾。
數(shù)據(jù)正確性:準(zhǔn)確性是對(duì)數(shù)據(jù)內(nèi)容正確性的測(cè)量標(biāo)準(zhǔn),如數(shù)據(jù)的取值是否有意義,是否在合理范圍內(nèi)。
數(shù)據(jù)完整性:完整性是對(duì)數(shù)據(jù)的存在性、有效性、結(jié)構(gòu)、內(nèi)容和其他基本特征的測(cè)量標(biāo)準(zhǔn),如填充率、有效性、范圍、最大值和最小值等。
數(shù)據(jù)可靠性:數(shù)據(jù)內(nèi)容是否能夠正確反映客觀事實(shí)。
在作戰(zhàn)數(shù)據(jù)信息系統(tǒng)中,目前常用的數(shù)據(jù)質(zhì)量檢查主要包括人工檢查法、基于規(guī)則庫(kù)的檢查方法兩種。人工檢查方法主要是通過(guò)人工逐項(xiàng)分析比對(duì)數(shù)據(jù)項(xiàng),或通過(guò)生成各類(lèi)數(shù)據(jù)報(bào)表、數(shù)據(jù)圖展示等數(shù)據(jù)可視化方式,查找數(shù)據(jù)填報(bào)過(guò)程中存在的明顯錯(cuò)誤。基于規(guī)則庫(kù)的檢查方法主要是通過(guò)基于SQL 語(yǔ)言,制定一系列數(shù)據(jù)校驗(yàn)規(guī)則,篩選錯(cuò)誤項(xiàng)。人工檢查方式在數(shù)據(jù)量較大時(shí)效率低下,不滿(mǎn)足數(shù)據(jù)實(shí)時(shí)性處理要求,基于規(guī)則庫(kù)的檢查方法可以快速完成數(shù)據(jù)質(zhì)量檢查,但主要針對(duì)的是單個(gè)數(shù)據(jù)項(xiàng)的完整性檢查,對(duì)于數(shù)據(jù)項(xiàng)之間的關(guān)聯(lián)關(guān)系檢查力度不夠。
關(guān)聯(lián)規(guī)則是數(shù)據(jù)挖掘領(lǐng)域廣泛使用的方法之一,關(guān)聯(lián)規(guī)則挖掘通常指的是從大量的數(shù)據(jù)集中挖掘到有價(jià)值的、可描述數(shù)據(jù)項(xiàng)之間關(guān)聯(lián)關(guān)系的數(shù)據(jù)挖掘方法,對(duì)于存在關(guān)聯(lián)關(guān)系的兩個(gè)或多個(gè)數(shù)據(jù)項(xiàng),可通過(guò)其中一項(xiàng)屬性的值預(yù)測(cè)另一項(xiàng)或多個(gè)項(xiàng)屬性的值[7-11]。關(guān)聯(lián)規(guī)則挖掘主要包含兩步,第一步設(shè)定最小支持度,找出關(guān)系數(shù)據(jù)庫(kù)中所有大于等于最小支持度的數(shù)據(jù)項(xiàng)集,第二步是設(shè)定最小置信度,利用頻繁項(xiàng)集生成關(guān)聯(lián)規(guī)則,根據(jù)最小置信度進(jìn)行關(guān)聯(lián)規(guī)則選取,最后得到強(qiáng)關(guān)聯(lián)規(guī)則[12-13]。
將數(shù)據(jù)庫(kù)中不可再分割的數(shù)據(jù)單元稱(chēng)為項(xiàng),用符號(hào)i表示,把i的集合記為I,稱(chēng)為項(xiàng)集,即I={i1,i2,i3,…,in},設(shè)T為事物數(shù)據(jù)庫(kù),T={t1,t2,t3,…,tn},每個(gè)事物ti(i=1,2,3,4,5,…,n) 包含的項(xiàng)集都是I的子集,記為ti?I,一個(gè)關(guān)聯(lián)規(guī)則可表示為X→Y的蘊(yùn)涵式,X?I,Y?I,并且X∩Y=Φ[14]。關(guān)聯(lián)規(guī)則的支持度support和置信度confidence是度量關(guān)聯(lián)規(guī)則的兩個(gè)重要特征量。關(guān)聯(lián)規(guī)則X→Y的支持度是指事物數(shù)據(jù)庫(kù)中同時(shí)包含X和Y的交易數(shù)和所有交易數(shù)之比,記為support(X→Y)=support(X∪Y)=P(XY),置信度是指交易包含X和Y的交易數(shù)與包含X的交易數(shù)之比,記為confidence=滿(mǎn)足最小支持度閾值和最小置信度閾值的規(guī)則稱(chēng)為強(qiáng)規(guī)則[15-16]。
關(guān)聯(lián)規(guī)則挖掘主要是挖掘數(shù)據(jù)內(nèi)部繁項(xiàng)集,獲取數(shù)據(jù)之間關(guān)聯(lián)關(guān)系,在關(guān)聯(lián)規(guī)則挖掘領(lǐng)域,常用的數(shù)據(jù)關(guān)聯(lián)規(guī)則算法主要包括Apriori 算法、FP-Tree 算法等。Apriori 算法為數(shù)據(jù)關(guān)聯(lián)規(guī)則挖掘經(jīng)典算法,由R.Agrawal 等人在1993 年提出,其基本思想是通過(guò)對(duì)事物數(shù)據(jù)庫(kù)的多次掃描來(lái)完成數(shù)據(jù)項(xiàng)集支持度的計(jì)算,發(fā)現(xiàn)頻繁項(xiàng)集從而生成關(guān)聯(lián)規(guī)則,采取一個(gè)層次順序搜索的循環(huán)方法來(lái)實(shí)現(xiàn)頻繁項(xiàng)集的挖掘[17]。第一次掃描數(shù)據(jù)庫(kù),得到頻繁1-項(xiàng)集的集合L1,第K(K>1)次掃描首先利用第K-1 次掃描的結(jié)果LK-1來(lái)產(chǎn)生候選集K-項(xiàng)集的集合CK,然后在掃描的過(guò)程中確定CK的支持度。最后,在每次掃描結(jié)束時(shí)計(jì)算頻繁K-項(xiàng)集的集合LK,算法在候選集K-項(xiàng)集CK為空時(shí)結(jié)束。存在的主要問(wèn)題是需要多次對(duì)數(shù)據(jù)進(jìn)行掃描,I/O 開(kāi)銷(xiāo)很大,運(yùn)行效率較低[18-19]。FP-Tree算法是對(duì)傳統(tǒng)Apriori 算法的改進(jìn),可以滿(mǎn)足不同數(shù)據(jù)量的使用需求,采取將提供頻繁項(xiàng)集的數(shù)據(jù)庫(kù)數(shù)據(jù)壓縮成一棵頻繁模式樹(shù),但仍保留其中項(xiàng)集關(guān)聯(lián)信息的分治策略,只需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行兩次掃描,算法運(yùn)行效率較高,是當(dāng)前應(yīng)用最為廣泛的關(guān)聯(lián)關(guān)系挖掘算法。
考慮到目前作戰(zhàn)數(shù)據(jù)的量級(jí)、規(guī)模以及數(shù)據(jù)處理速度的要求,文中采用FP-Tree 算法實(shí)現(xiàn)對(duì)作戰(zhàn)數(shù)據(jù)信息系統(tǒng)中關(guān)聯(lián)數(shù)據(jù)項(xiàng)的挖掘,F(xiàn)P-Tree 算法是通過(guò)引入數(shù)據(jù)結(jié)構(gòu)來(lái)臨時(shí)存儲(chǔ)數(shù)據(jù),主要包括原始數(shù)據(jù)、FP-tree和節(jié)點(diǎn)鏈表,以此來(lái)減少I(mǎi)/O 開(kāi)銷(xiāo),以表1 所示的關(guān)系型數(shù)據(jù)庫(kù)為例,完成FP-Tree 構(gòu)建。
表1 數(shù)據(jù)庫(kù)示例
通過(guò)掃描數(shù)據(jù)庫(kù)建立項(xiàng)頭表,刪除支持度小于10%的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行排序,項(xiàng)頭表建立過(guò)程如圖1 所示。
根據(jù)項(xiàng)頭表和排序后的數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行FP-tree的建立。第一步是為FP-tree 建立根節(jié)點(diǎn),記為null,第二步是將排序后的數(shù)據(jù)依次插入FP-tree的樹(shù)結(jié)構(gòu)中。若添加的節(jié)點(diǎn)已經(jīng)在FP-tree 中出現(xiàn),則更新該節(jié)點(diǎn)的支持度數(shù)值,對(duì)于新節(jié)點(diǎn),項(xiàng)頭表對(duì)應(yīng)的節(jié)點(diǎn)會(huì)通過(guò)節(jié)點(diǎn)鏈表引入新節(jié)點(diǎn),直至所有數(shù)據(jù)插入完成,從而完成樹(shù)的建立。樹(shù)的建立過(guò)程如圖1所示。
圖1 項(xiàng)頭表建立過(guò)程
建立FP-tree和項(xiàng)頭表后,從項(xiàng)頭表底部依次向上挖掘,構(gòu)造條件模式基,把挖掘的節(jié)點(diǎn)作為葉子節(jié)點(diǎn)所對(duì)應(yīng)的FP-tree 子樹(shù),將子樹(shù)中每個(gè)節(jié)點(diǎn)的的計(jì)數(shù)設(shè)置為葉子節(jié)點(diǎn)的計(jì)數(shù),并刪除計(jì)數(shù)低于支持度的節(jié)點(diǎn),通過(guò)遞歸算法完成挖掘過(guò)程。
對(duì)于兩數(shù)據(jù)項(xiàng)之間的關(guān)聯(lián)關(guān)系,找到只包含兩數(shù)據(jù)項(xiàng)的集合,即2-頻繁項(xiàng),對(duì)圖2 所示的FP-tree進(jìn)行挖掘,以T6-f1 節(jié)點(diǎn)為例,挖掘到的部分2-頻繁項(xiàng)集為{T2-b2:1,T6-f1:1},{T4-d2:1,T6-f1:1},{T5-e1:1,T6-f1:1}。同樣以T6-f1 節(jié)點(diǎn)為例,挖掘到的部分關(guān)聯(lián)關(guān)系如表2 所示。
圖2 FP-tree建立過(guò)程
表2 挖掘到的2-頻繁項(xiàng)集
在作戰(zhàn)數(shù)據(jù)信息系統(tǒng)中,數(shù)據(jù)經(jīng)過(guò)各單位初審以及系統(tǒng)自帶的校驗(yàn)工具審核后,數(shù)據(jù)的錯(cuò)誤并非是大概率發(fā)生的,且一些數(shù)據(jù)項(xiàng)之間存在著本質(zhì)關(guān)聯(lián)。通過(guò)FP-tree 構(gòu)建及關(guān)聯(lián)規(guī)則挖掘后,若存在關(guān)聯(lián)關(guān)系的數(shù)據(jù)項(xiàng)相應(yīng)指標(biāo)之間置信度低于設(shè)定閾值,可視為數(shù)據(jù)填報(bào)錯(cuò)誤。
例如關(guān)鍵崗位人員信息表中,職務(wù)級(jí)別和軍銜之間的關(guān)聯(lián)程度較高,若計(jì)算后置信度低于閾值,可視為填報(bào)錯(cuò)誤。
以某單位關(guān)鍵崗位人員信息表為例,共涉及552條數(shù)據(jù)記錄,5 個(gè)數(shù)據(jù)指標(biāo),相應(yīng)字段的編碼、范圍、含義如表3 所示。
表3 關(guān)鍵崗位人員信息表各字段含義及編碼含義
基于關(guān)聯(lián)規(guī)則實(shí)現(xiàn)錯(cuò)誤檢測(cè)的算法步驟:
1)讀入數(shù)據(jù),篩選存在一定關(guān)聯(lián)關(guān)系的數(shù)據(jù)項(xiàng),并將其轉(zhuǎn)換為二維數(shù)組類(lèi)型;
2)通過(guò)FP-tree 算法,產(chǎn)生2-頻繁項(xiàng)集合;
3)對(duì)于每一個(gè)頻繁項(xiàng)集,構(gòu)造所有可能的關(guān)聯(lián)規(guī)則,然后計(jì)算每一個(gè)關(guān)聯(lián)規(guī)則置信度,輸出置信度小于閾值的有效關(guān)聯(lián)規(guī)則;
4)對(duì)生成的有效關(guān)聯(lián)規(guī)則進(jìn)行人工判別,剔除明顯錯(cuò)誤的關(guān)聯(lián)規(guī)則;
5)根據(jù)關(guān)聯(lián)規(guī)則,篩選出可能填報(bào)錯(cuò)誤的數(shù)據(jù)項(xiàng)。
表4 中包含的規(guī)則如下:
表4 有效關(guān)聯(lián)(閾值=0.07)
規(guī)則1:存在軍銜為大校、職務(wù)級(jí)別為正團(tuán)職的人員,對(duì)生成的4 條數(shù)據(jù)記錄進(jìn)行檢查,得到結(jié)果:1)兩名軍銜為大校的人員,職務(wù)級(jí)別誤填為正團(tuán)職,屬于填報(bào)錯(cuò)誤;2)另外兩名軍銜為大校的人員,職務(wù)級(jí)別填為正團(tuán)職,經(jīng)過(guò)核實(shí),這兩名人員兼有技術(shù)職務(wù),屬于正確填報(bào)。
規(guī)則2:存在職務(wù)為處長(zhǎng)但軍銜為少校的人員,對(duì)生成的兩條數(shù)據(jù)記錄進(jìn)行檢查,得到結(jié)果:兩名處長(zhǎng)軍銜填報(bào)錯(cuò)誤,屬錯(cuò)誤填報(bào)。
規(guī)則3:存在職務(wù)級(jí)別為副團(tuán)、職務(wù)為處長(zhǎng)的人員,對(duì)生成的一條數(shù)據(jù)記錄進(jìn)行檢查,得到結(jié)果:一名職務(wù)級(jí)別為副團(tuán)職人員的職務(wù)信息誤填為處長(zhǎng),屬錯(cuò)誤填報(bào)。
規(guī)則4:存在第一學(xué)歷為博士研究生但文化程度為碩士研究生的人員,對(duì)生成的兩條數(shù)據(jù)記錄進(jìn)行檢查,得到結(jié)果:兩名第一學(xué)歷為博士研究生的人員,文化程度誤填為碩士研究生。
通過(guò)選取存在關(guān)聯(lián)關(guān)系的數(shù)據(jù)項(xiàng),設(shè)置置信度小于閾值的篩選條件,可生成能夠有效檢測(cè)錯(cuò)誤的關(guān)聯(lián)規(guī)則,從而能夠篩選出可能出錯(cuò)的數(shù)據(jù)項(xiàng)。但是針對(duì)生成的關(guān)聯(lián)規(guī)則,還需要結(jié)合實(shí)際情況進(jìn)行篩選,而不能直接進(jìn)行應(yīng)用。后續(xù)的工作中還需要考慮不同閾值下的關(guān)聯(lián)規(guī)則生成情況和實(shí)驗(yàn)驗(yàn)證結(jié)果,使其閾值取值更為合理,從而使該方法具備更強(qiáng)的通用性和可操作性。綜合理論分析和實(shí)驗(yàn)結(jié)果可知,該方法在設(shè)定的閾值條件下可以篩選出可能填報(bào)錯(cuò)誤的數(shù)據(jù)項(xiàng),一定程度上能夠提高數(shù)據(jù)審核效率,彌補(bǔ)現(xiàn)階段人工逐項(xiàng)核對(duì)和基于規(guī)則庫(kù)進(jìn)行數(shù)據(jù)審查方法所存在的不足,可作為作戰(zhàn)數(shù)據(jù)信息系統(tǒng)質(zhì)量審查的一個(gè)補(bǔ)充方法。