余從容 盧利娟 梁東貴
(廣州供電局有限公司 廣州 510000)
電力企業(yè)的投資規(guī)模,影響著國(guó)計(jì)民生和國(guó)家經(jīng)濟(jì)命脈[1],隨著投資規(guī)模的擴(kuò)大,對(duì)資金使用效益、管理和資金風(fēng)險(xiǎn)管控有重要監(jiān)督作用的工程審計(jì)逐漸成為公司的重要工作。而信息系統(tǒng)的逐步完善與提升,電力企業(yè)產(chǎn)生的電子數(shù)據(jù)比以往更多,審計(jì)數(shù)據(jù)呈海量化的增長(zhǎng)趨勢(shì),已建立起TB甚至PB級(jí)的大數(shù)據(jù)庫(kù)[2]。面對(duì)數(shù)據(jù)量的海量增長(zhǎng)以及各種管理系統(tǒng)中大量的非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ),依賴于審計(jì)經(jīng)驗(yàn)的數(shù)據(jù)庫(kù)語(yǔ)句查詢方法不能充分發(fā)揮大數(shù)據(jù)在揭示數(shù)據(jù)疑點(diǎn)方面的優(yōu)勢(shì),而且審計(jì)經(jīng)驗(yàn)往往落后于審計(jì)數(shù)據(jù)的發(fā)展,使得許多新的審計(jì)疑點(diǎn)不能被及時(shí)發(fā)現(xiàn),給審計(jì)帶來(lái)風(fēng)險(xiǎn),為此,如何整合充分利用這些數(shù)據(jù),實(shí)現(xiàn)審計(jì)大數(shù)據(jù)的全覆蓋并從中發(fā)現(xiàn)疑點(diǎn),是計(jì)算機(jī)審計(jì)面臨的迫切要求和全新挑戰(zhàn)[3]。
數(shù)據(jù)聚類[4]可以在無(wú)需給定先驗(yàn)知識(shí)的情況下即可揭示出數(shù)據(jù)元素之間內(nèi)在關(guān)系完成數(shù)據(jù)分類,審計(jì)聚類中包含較少實(shí)例的簇由于其與實(shí)例較多的“大簇”之間的特征屬性差異較大,因此可被視為潛在的審計(jì)疑點(diǎn),在進(jìn)行大數(shù)據(jù)計(jì)算機(jī)審計(jì)證據(jù)發(fā)現(xiàn)時(shí),聚類可以將具有更大審計(jì)疑點(diǎn)的占較少比例的數(shù)據(jù)聚類為可疑數(shù)據(jù)“小簇”,配合審計(jì)經(jīng)驗(yàn)從而實(shí)現(xiàn)快速審計(jì)疑點(diǎn)定位,既充分利用大數(shù)據(jù)的全覆蓋優(yōu)勢(shì)又能揭示潛在可疑審計(jì)數(shù)據(jù)。為此,王會(huì)[5]根據(jù)大數(shù)據(jù)聚類技術(shù)初步完成計(jì)算機(jī)輔助審計(jì)框架,秦志光等[6]提出了基于云存儲(chǔ)技術(shù)的的大數(shù)據(jù)審計(jì),秦榮生[7]分析了大數(shù)據(jù)聚類技術(shù)對(duì)于審計(jì)方式的影響,但這些研究對(duì)基于聚類的大數(shù)據(jù)審計(jì)的實(shí)施并不具體,更多停留在理論探討。
為此,在已有研究基礎(chǔ)上,提出了基于并行蜂群迭代聚類的電力審計(jì)大數(shù)據(jù)疑點(diǎn)發(fā)現(xiàn)算法,算法在經(jīng)典K-means算法基礎(chǔ)上,采用Leaders算法獲得大數(shù)據(jù)的初始聚類中心數(shù),然后采用改進(jìn)蜂群算法與K均值組合迭代優(yōu)化聚類中心及聚類結(jié)果,實(shí)現(xiàn)審計(jì)大數(shù)據(jù)的精確聚類,并采用消息傳遞接口MPI進(jìn)行算法并行改進(jìn),以適應(yīng)大數(shù)據(jù)聚類的運(yùn)行時(shí)間需要,最后以實(shí)例數(shù)較少的異常聚類或離散值識(shí)別為潛在疑點(diǎn),實(shí)驗(yàn)驗(yàn)證了算法在審計(jì)大數(shù)據(jù)疑點(diǎn)發(fā)現(xiàn)的有效性。
在進(jìn)行大數(shù)據(jù)聚類時(shí),經(jīng)典的K-means算法存在依賴初始聚類中心設(shè)置、極易形成局部最優(yōu)收斂和無(wú)法滿足大規(guī)模數(shù)據(jù)聚類的性能和效率要求的問(wèn)題,而且,在審計(jì)大數(shù)據(jù)中潛在的疑點(diǎn)簇和不相關(guān)小簇并不能依靠審計(jì)經(jīng)驗(yàn)確定聚類中心數(shù)。為此,針對(duì)這些不足,文中算法通過(guò)Leaders算法獲得大數(shù)據(jù)的初始聚類中心數(shù),改善初始聚類中心的設(shè)置;通過(guò)改進(jìn)改進(jìn)蜂群算法與K均值組合迭代優(yōu)化聚類中心及聚類結(jié)果,實(shí)現(xiàn)大數(shù)據(jù)的精確聚類;通過(guò)并列運(yùn)行,以滿足電力審計(jì)大數(shù)據(jù)處理的性能和運(yùn)行效率需要。
基于增量聚類的 Leaders算法[8~9]能夠忽略聚類類別的歸屬模糊性,不需指定聚類中心數(shù),僅掃描一遍數(shù)據(jù)并選取簇的Leader代表點(diǎn)實(shí)現(xiàn)聚類,且僅存儲(chǔ)提取的Leader,節(jié)省運(yùn)行時(shí)間和存儲(chǔ)空間,對(duì)處理大規(guī)模數(shù)據(jù)十分有利[10]。
Leaders算子自動(dòng)計(jì)算大數(shù)據(jù)聚類中心,但其對(duì)數(shù)據(jù)輸入順序敏感,且易形成圖1所示的類間相似大于類內(nèi)相似的情況,加之固定距離導(dǎo)致聚類結(jié)果分布均勻,因此Leaders算子可以快速獲得審計(jì)大數(shù)據(jù)的聚類,但其準(zhǔn)確性不能令人滿意。
為此,結(jié)合已有研究成果,以Leaders簇心作為初值應(yīng)用于K-means算法中,以期精確聚類審計(jì)疑點(diǎn)簇及不相關(guān)的小簇。
蜂群算法是一種基于群體智能原理的搜索算法,其蜜源代表大數(shù)據(jù)聚類的一個(gè)潛在聚類中心。蜜源由相應(yīng)的位置和優(yōu)化目標(biāo)函數(shù)決定其適應(yīng)度值,由適應(yīng)度值衡量蜜源的優(yōu)劣。本文改進(jìn)的蜂群算法里的蜜源在第K+1次迭代操作中通過(guò)學(xué)習(xí)前gbestk來(lái)更新蜜源位置。改進(jìn)后的蜜源位置公式為
Leaders初始聚類中心解決了K-means算法初始值設(shè)置問(wèn)題,但Leaders算法的初始聚類中心并不精確,為此文中采用改進(jìn)蜂群算法與K-means算法相結(jié)合,優(yōu)化聚類中心,進(jìn)而獲得精確聚類。算法的基本思想為,以Leaders初始聚類中心為初始值,使用式(1)所示的改進(jìn)蜂群優(yōu)化各中心,然后以優(yōu)化后的聚類中心采用K-means算法進(jìn)行一次聚類,再以新聚類形成的中心更新蜂群,如此多次交替執(zhí)行蜂群優(yōu)化算法和K-means算法,直到滿足條件結(jié)束。
蜜源與算法中的聚類中心相一致,而聚類簇的質(zhì)量可以根據(jù)蜜源的適應(yīng)度值來(lái)判斷,適應(yīng)度越大而目標(biāo)函數(shù)值越小則聚類效果越好。因此本文中的蜜源適應(yīng)度函數(shù)構(gòu)造如下
式中J為K-means算法的聚類質(zhì)量目標(biāo)函數(shù)[11],蜂群優(yōu)化K-means聚類算法的實(shí)現(xiàn)步驟為
步驟1,Leaders算法計(jì)算數(shù)據(jù)集初始聚類中心數(shù)k,蜂群優(yōu)化算法中觀察蜂與采蜜蜂設(shè)置為相同數(shù)目SN,算法迭代次數(shù)閾值為itmax,蜜源開(kāi)采次數(shù)控制限值li;
步驟 2,隨機(jī)生成蜜源 X={X1。X2。…。XSN} 及適應(yīng)度 fiti,設(shè)置蜜源初始局部最優(yōu)值lbesti=fiti,
步驟3,采蜜蜂根據(jù)式(1)搜索鄰域新蜜源,并計(jì)算其適應(yīng)度值,按照貪婪原則,選擇最大適應(yīng)度
步驟4,所有的鄰域搜索完成后,蜜源的最終選擇概率由式(3)計(jì)算得到。
根據(jù)Pi值,觀察蜂轉(zhuǎn)換為采蜜蜂,并重復(fù)步驟3;
步驟5,如果對(duì)蜜源 Xi經(jīng)過(guò)li次開(kāi)采后,其適應(yīng)度不變且非全局最優(yōu),則該蜂變換為偵察蜂,并根據(jù)式(1)和式(2)搜索生成新蜜源;
步驟6,對(duì)蜜源表示的聚類中心進(jìn)行K-means聚類,并用新類更新蜂群,當(dāng)更新次數(shù)大于預(yù)設(shè)閾值itmax則蜜源為最優(yōu)聚類中心。
網(wǎng)絡(luò)技術(shù)和計(jì)算機(jī)硬件的高速發(fā)展使得并行計(jì)算成為實(shí)用高效的大規(guī)模數(shù)據(jù)處理方法[12],而K-means算法對(duì)大數(shù)據(jù)集中每個(gè)數(shù)據(jù)的操作是相同的,無(wú)需數(shù)據(jù)間的依賴[11],因此可以通過(guò)并行運(yùn)算優(yōu)化蜂群K-means算法,以使其滿足大數(shù)據(jù)聚類對(duì)算法運(yùn)行效率的要求。
MPI[13]是適于并行計(jì)算的消息傳遞接機(jī),其提供多個(gè)支持并行運(yùn)算函數(shù)調(diào)用。文中采用MPI接口模型搭建分布式存儲(chǔ)模式,采用主從節(jié)點(diǎn)模式程序?qū)崿F(xiàn)并行化,程序通過(guò)進(jìn)程號(hào)ID來(lái)標(biāo)識(shí)MPI進(jìn)程并分配不同的程序塊完成并行聚類,其流程圖如圖2所示。
圖中主進(jìn)程完成訪問(wèn)NFS數(shù)據(jù)集獲取并分成子集,根據(jù)Leaders算法計(jì)算審計(jì)大數(shù)據(jù)的初始聚類中心數(shù)K,然后將子集及初始聚類中心傳遞給各從進(jìn)程;從進(jìn)程執(zhí)行改進(jìn)的蜂群優(yōu)化K-means算法;從進(jìn)程完成后對(duì)所有聚類合并,并采用式(4)計(jì)算歸并所有聚類,并重新傳送到各從進(jìn)程。當(dāng)從進(jìn)程中全局新聚類中心相對(duì)于原聚類中心的移動(dòng)距離滿足算法收斂條件時(shí),并行迭代聚類結(jié)束;最后將MPI資源釋放。
圖2 MPI信息模型并行聚類算法
為驗(yàn)證文中算法的有效性,實(shí)驗(yàn)采用仿真集和真實(shí)數(shù)據(jù)進(jìn)行測(cè)試,仿真數(shù)據(jù)由文獻(xiàn)[14]中方法生成,而真實(shí)數(shù)據(jù)由收集自網(wǎng)上數(shù)據(jù),并根據(jù)證監(jiān)會(huì)等處罰公開(kāi)信息進(jìn)行算法結(jié)果驗(yàn)證。實(shí)驗(yàn)運(yùn)行在Intel(R)Core(TM)i5 2540M CPU@2.60Hz,4GB的計(jì)算機(jī)上,采用VC++和MPICH2并行環(huán)境。
采用文獻(xiàn)中方法隨機(jī)生成D1、D2和D3三個(gè)數(shù)據(jù)集,實(shí)例數(shù)分別為10K、150K和5000K,數(shù)據(jù)實(shí)例為數(shù)值類型,數(shù)據(jù)集類型為同規(guī)圓、圓環(huán)與圓及嵌套圓環(huán),如圖3所示,測(cè)試數(shù)據(jù)集由NFS管理。
為驗(yàn)證算法的有效性,選用經(jīng)典K-means算法和大數(shù)據(jù)集聚類Rough-DBSCAN算法[15]進(jìn)行實(shí)驗(yàn)對(duì)比,評(píng)價(jià)指標(biāo)定義為執(zhí)行時(shí)間(t)、聚類準(zhǔn)確率(F)和適應(yīng)值(fit),實(shí)驗(yàn)結(jié)果如表1所示,表中實(shí)驗(yàn)結(jié)果為算法在三個(gè)數(shù)據(jù)集上運(yùn)行50次聚類的相應(yīng)平均值。
圖3 人工數(shù)據(jù)集幾何形狀
表1 三種方法實(shí)驗(yàn)結(jié)果對(duì)比
從表中經(jīng)典算法與文中算法的實(shí)驗(yàn)對(duì)比結(jié)果看出,在三個(gè)數(shù)據(jù)集上,文中算法聚類性能要明顯優(yōu)于經(jīng)典算法,盡管在數(shù)據(jù)集D1上,文中算法優(yōu)勢(shì)不顯示,甚至性能有所下降,這主要是由于數(shù)據(jù)集D1數(shù)據(jù)量較少,數(shù)據(jù)子集之間通信反而點(diǎn)用更多的時(shí)間,但在大數(shù)據(jù)集D2和D3上,性能優(yōu)勢(shì)明顯;與Rough-DBSCAN算法相比,在大數(shù)據(jù)聚類準(zhǔn)確性和算法運(yùn)行時(shí)間方面,文中算法比Rough-DBSCAN算法相當(dāng)或性能有所提高,在運(yùn)行時(shí)間方面提高明顯,從而說(shuō)明本文算法在大數(shù)據(jù)聚類的有效性。
考慮到財(cái)務(wù)審計(jì)數(shù)據(jù)的保密性,文中利用經(jīng)典的網(wǎng)絡(luò)爬行技術(shù)收集2010~2017年2207家公司的公開(kāi)財(cái)報(bào)數(shù)據(jù),分析形成實(shí)驗(yàn)數(shù)據(jù)213620條,實(shí)驗(yàn)中算法迭代次數(shù)為10次。如圖4所示為采用本文方法對(duì)數(shù)據(jù)聚類結(jié)果,實(shí)驗(yàn)分析了與企業(yè)利潤(rùn)相關(guān)的四個(gè)指標(biāo),可以看出數(shù)據(jù)被聚成5簇:第0簇指標(biāo)均衡,其實(shí)例數(shù)占總數(shù)據(jù)實(shí)例數(shù)的比例為99.88%,而第1~4簇,其聚類實(shí)例數(shù)占總數(shù)據(jù)實(shí)例數(shù)僅在0.03%左右,且各實(shí)驗(yàn)參考的各個(gè)指標(biāo)異常,可以認(rèn)為是潛在疑點(diǎn)聚類。
根據(jù)實(shí)驗(yàn)結(jié)果,參考分析的公司中有28家的審計(jì)數(shù)據(jù)存在于疑點(diǎn)數(shù)據(jù)聚類中,表現(xiàn)異常,而通過(guò)證監(jiān)會(huì)等機(jī)構(gòu)網(wǎng)上可查的處罰情況,這些可疑公司中,大部分收到了相關(guān)單位的整改通知或處罰,從而檢驗(yàn)了文中算法的有效性。
圖4 聚類后各簇指標(biāo)特點(diǎn)
另外,通過(guò)審計(jì)大數(shù)據(jù)聚類發(fā)現(xiàn)的審計(jì)可疑公司并不一定就有審計(jì)問(wèn)題,僅說(shuō)明疑點(diǎn)聚類中的實(shí)例具有更好的審計(jì)問(wèn)題發(fā)生概率,其需結(jié)合審計(jì)經(jīng)驗(yàn)進(jìn)一步分析確認(rèn),但經(jīng)過(guò)大數(shù)據(jù)聚類后,在進(jìn)行審計(jì)證據(jù)發(fā)現(xiàn)時(shí),一方面可以充分利用大數(shù)據(jù)的全覆蓋優(yōu)勢(shì),全局發(fā)現(xiàn)審計(jì)疑點(diǎn),另一方向減少審計(jì)處理數(shù)據(jù)量,提高審計(jì)效率,因而對(duì)于大數(shù)據(jù)環(huán)境下審計(jì)證據(jù)的快速獲取意義重大。
針對(duì)電力企業(yè)數(shù)據(jù)量的海量增長(zhǎng)導(dǎo)致計(jì)算機(jī)輔助審計(jì)的局限性,文中提出了基于并行蜂群優(yōu)化K-means聚類電力大數(shù)據(jù)審計(jì)證據(jù)發(fā)現(xiàn)算法,算法在聚類中心初始設(shè)置、聚類中心優(yōu)化精確以及并行運(yùn)算提高算法效率方面對(duì)經(jīng)典的K-means算法進(jìn)行改進(jìn),以期提高聚類精確性的同時(shí),提高算法的執(zhí)行效率,以滿足審計(jì)大數(shù)據(jù)的性能要求,仿真數(shù)據(jù)和真實(shí)網(wǎng)絡(luò)公開(kāi)數(shù)據(jù)對(duì)比實(shí)驗(yàn)驗(yàn)證了文中算法的有效性。