盧利娟 余從容 梁東貴 張偉政
(廣州供電局有限公司 廣州 510000)
隨著電網(wǎng)企業(yè)信息化部署的完善以及業(yè)務系統(tǒng)和信息系統(tǒng)的逐步上線,電力企業(yè)產(chǎn)生的電子數(shù)據(jù)比以往更多,審計數(shù)據(jù)呈海量化的增長,存儲規(guī)模從GB級增長到TB甚至PB級,形成審計大數(shù)據(jù)庫[1]。面對海量以及快速增長以及包含結(jié)構(gòu)化、半結(jié)構(gòu)化以及非結(jié)構(gòu)化等結(jié)構(gòu)類型繁多復雜的審計大數(shù)據(jù),如何對其進行可靠存儲、高效管理和快速分析,充分發(fā)揮大數(shù)據(jù)在發(fā)現(xiàn)數(shù)據(jù)證據(jù)方面的全覆蓋優(yōu)勢,是當前重要的研究課題。
國家層面已愈發(fā)重視電力企業(yè)審計[2],對于審計業(yè)務部門,如何制定科學、有效的審計項目和審計計劃成為審計部門工作的重點。以往審計計劃的制定主要依據(jù)過往審計經(jīng)驗、國家政策關(guān)注重點、審計單位關(guān)注重點等[3],缺乏客觀有效的、科學的數(shù)據(jù)支撐。而基于被審計單位各類已經(jīng)發(fā)生的審計問題的歷史積累數(shù)據(jù),探索未來某類審計問題可能性以及該類審計問題出現(xiàn)頻次的預測方法,以指導業(yè)務人員展開審計工作,既能發(fā)揮審計大數(shù)據(jù)全覆蓋優(yōu)勢,又使得根據(jù)預測制定的審計計劃更具有客觀科學的數(shù)據(jù)支持,因而對于電力企業(yè)數(shù)據(jù)審計具有重要意義。
為此,在研究已有大數(shù)據(jù)相關(guān)技術(shù)的基礎(chǔ)上,建立一種基于Hadoop集群的電力企業(yè)審計大數(shù)據(jù)管理方案,利用Hadoop集群搭建數(shù)據(jù)存儲平臺,將各電力企業(yè)散的子系統(tǒng)中產(chǎn)生和存儲數(shù)據(jù)進行整合并存儲,在此基礎(chǔ)上,以審計疑點概率作為目標變量,提出基于并行改進隨機森林的審計大數(shù)據(jù)審計疑點發(fā)生概率預測方法,為審計計劃的制定提供數(shù)據(jù)支撐,采用不同規(guī)模的大數(shù)據(jù)集對算法進行實驗,實驗結(jié)果驗證了算法的有效性。
針對電力企業(yè)各不同的子系統(tǒng)產(chǎn)生的海量且結(jié)構(gòu)異構(gòu)的審計大數(shù)據(jù),如何構(gòu)建同一規(guī)范表達的模型以實現(xiàn)數(shù)據(jù)整合是亟需解決的問題。為此,在進行大數(shù)據(jù)審計疑點預測前,在云計算[4]基礎(chǔ)上,結(jié)合審計大數(shù)據(jù)管理與分析的實際需求,利用Hadoop構(gòu)建如圖1所示審計大數(shù)據(jù)管理平臺,平臺由應用層、云計算數(shù)據(jù)處理層和管理層三部分組成,存儲系統(tǒng)由HDFS、HBase與Hive建立,大數(shù)據(jù)的分析處理則由MapReduce和Spark并行計算框架完成。
數(shù)據(jù)管理層主要將電網(wǎng)異構(gòu)數(shù)據(jù)整合至平臺以高效管理,文中使用第三方Sqoop和Datanucleus工具進行操作,sqoop工具將電力子系統(tǒng)的結(jié)構(gòu)類型各異的數(shù)據(jù)整合到Hive與Hbase中[5],Datanucleus工具的按列存儲操作能力,將在線產(chǎn)生的數(shù)據(jù)寫入到HBase中,抽取整合流程如圖2所示。
云計算處理層主要完成對審計大數(shù)據(jù)的存儲及挖掘、預測等計算功能,其由Hadoop搭建。
根據(jù)已有大數(shù)據(jù)存儲方面的研究[6~9],文中數(shù)據(jù)存儲在HDFS分布式文件系統(tǒng)中,考慮到審計數(shù)據(jù)的保密性和安全性,利用Hbase數(shù)據(jù)庫的高性能和現(xiàn)代密碼技術(shù)優(yōu)勢,將存儲系統(tǒng)的密鑰與密文管理相分離。采用MapReduce[10]并行計算模型完成大數(shù)據(jù)的并行批量計算,而Spark內(nèi)存并行計算模型則完成密集型數(shù)據(jù)的迭代。Spark彌補了Hadoop在快速迭代上的速率不足。Spark內(nèi)存并行計算框架將所需數(shù)據(jù)讀入內(nèi)存,在內(nèi)存中完成所需數(shù)據(jù)的查詢,從而比MapReduce的基于磁盤數(shù)據(jù)訪問速度快的多,提高運行效率并減少不必要的IO操作。
應用層主要在去計算數(shù)據(jù)處理層功能基礎(chǔ)上為電力企業(yè)各部門提供功能接口。
審計疑點預測為審計計劃的制定提供科學有效的數(shù)據(jù)支撐。目前,決策樹在傳統(tǒng)預測中應用廣泛[11~12],且取得較好的研究成果,但其在大數(shù)據(jù)審計疑點預測中還存在內(nèi)存需求大、影響隨機因素多等不足,無法滿足大數(shù)據(jù)下審計疑點預測要求。隨機森林算法[13]是多決策樹集成方法,決策樹由Bagging理論和Ho隨機子空間理論[14]得到,最終結(jié)果為各樹結(jié)果綜合,具有良好的并行擴展,適于文中快速疑點預測。
算法是由一系列分配有獨立的樣本訓練集TS的分類回歸樹組成的,其中獨立訓練樣本集根據(jù)Bagging算法抽取,且與總樣本集等規(guī)模,而內(nèi)部節(jié)點則是由Ho理論選取的隨機屬性子集構(gòu)成,從而形成樹群,最終結(jié)果為各樹結(jié)果投票或平均得到,圖3所示為單樹訓練流程。
圖3可以看出,單樹構(gòu)造主要根據(jù)屬性子集進行分支,然后在子樹上重復執(zhí)行劃分過程,直到滿足停止生長條件。
圖3 隨機森林算法單樹訓練
Gini指數(shù)度量節(jié)點的不純性,適于算法中分類樹的構(gòu)建,其計算式為[13]
式中:t為節(jié)點屬性,p(j/t)表示 j類目標在當前節(jié)點比例。最小二乘偏差適于算法中回歸樹構(gòu)建,節(jié)點t擬合后,其誤差表示為
式中nt為節(jié)點數(shù)據(jù)實例數(shù),kt為實例數(shù)據(jù)目標值均值kt=(∑yi)/nt,節(jié)點t最小二乘偏差標準為使式(3)最大
式中SL=∑DiLyi,SR=∑DiRyi,s為屬性值。
集成學習思想為隨機森林算法實現(xiàn)并行化處理的基礎(chǔ),但其并不僅僅是K個樹模型的簡單組合,Bagging有放回的抽樣,使得訓練樣本集中約有37%的數(shù)據(jù)差異[15],且構(gòu)建過程獨立,確保了訓練過程數(shù)據(jù)的并行化,從而提高模型生成的速率,而隨機子空間方法在進行節(jié)點屬性測試時,隨機抽取避免了所有屬性的讀入和過度擬合?;诖宋闹刑岢隽嘶贛apReduce的并行改進隨機森林算法對審計計大數(shù)據(jù)進行審計疑點預測。改進算法在訓練階段由3個MapReduce作業(yè)類前后依次完成數(shù)據(jù)字典生成、決策樹生成、隨機森林形成,訓練后的模型保存在Hadoop分布式集群中。
數(shù)據(jù)字典生成即為對訓練樣本描述其條件和決策屬性,并形成一個記錄條件屬性類型和決策屬性位置以及最終模型屬性的描述文件。數(shù)據(jù)字典生成過程由第一個MapReduce完成,其一個Map過程完成一部分數(shù)據(jù)的讀取,并完成描述文件的生成,描述文件在Hadoop中以以key/value的的數(shù)據(jù)模式保存到HDFS中,用于后續(xù)的MapReduce調(diào)用。
決策樹生成是算法并行改進的核心部分,其并行實現(xiàn)過程由以下幾個方面組成。
1)Bagging并行抽取Dataset集中原數(shù)據(jù)集的k樣本子集,TS1,TS2,…,TSK,由于采用有放回,所以并行抽樣不會對訓練子集TSi產(chǎn)生影響,且子集與原數(shù)據(jù)集同規(guī)模,這樣保證訓練子集的差異又不會改變原數(shù)據(jù)集的知識規(guī)模。
2)每個訓練子集中,根據(jù)其屬性數(shù)M 計算隨機子空間屬性子集大小m?(m?M),即節(jié)點的隨機屬性個數(shù),根據(jù)已有研究,對于隨機森林模型為分類模型,則取中m為M的方根,而為回歸模型時,取其為M的1/3。然后計算屬性的信息量,并根據(jù)最佳屬性進行分支。
3)遞歸運算完成節(jié)點的建立,進而生成所需的決策樹,遞歸過程如表1所示。
表1 決策樹生成的map偽代碼
Map程序可實現(xiàn)一個決策樹生成,K個樹并行生成。并行決策樹生成在第二個MapRaduce中實現(xiàn),該過程僅進行Map過程而無Raduce過程。
圖4 并行隨機森林審計疑點預測流程圖
第三個MapRaduce過程主要根據(jù)生成的K個決策樹形成最終的隨機森林決策。使用并行隨機森林算法進行審計疑點發(fā)生概率預測的過程如圖4所示。模型依托Hadoop分布式集群實現(xiàn)審計大數(shù)據(jù)的分布式存儲,依托MapReduce進行并行化優(yōu)化,從而充分發(fā)揮Hadoop集群在審計大數(shù)據(jù)上的存儲與高效計算能力完成審計數(shù)據(jù)的挖掘和預測,有效提高審計疑點發(fā)生概率預測的精度和大數(shù)據(jù)處理能力。
為驗證算法的有效性,構(gòu)建了由40臺PC機組成的實驗平臺,每臺計算機配置為Inter(R)Core?i5-3470 CPU@3.2 GHz,8.00 GB內(nèi)存。平臺中一臺作為主節(jié)點,對所有資源進行分配與調(diào)度以及管理文件系統(tǒng),其他為數(shù)據(jù)節(jié)點,完成存儲和預測運算。分布在各獨立電力企業(yè)子系統(tǒng)中的審計數(shù)據(jù)通過開源Sqoop工具遷移到Hadoop集群。
采用某電力企業(yè)2013-2017年度審計數(shù)據(jù)進行實驗,審計問題劃分為15類,如圖5所示??偣?92020條風險統(tǒng)計數(shù)據(jù),去重復和異常處理后,最終整理成6000條記錄,抽樣其中1300條記錄作為測試集合。
實驗分兩部分,首先將實驗數(shù)據(jù)人為擴充到大數(shù)據(jù)規(guī)模,取50次運行結(jié)果的平均值;其次根據(jù)未來審計問題的存在與否與往年是否發(fā)現(xiàn)類似問題以及其發(fā)現(xiàn)的頻數(shù)有關(guān),將各類別的審計問題歷史數(shù)據(jù)按照時間(年)維度進行排序,將最近一年的審計問題發(fā)生的頻數(shù)作為目標變量,也就是2017年的審計問題發(fā)生的頻數(shù)作為目標變量,其余年份的作為分析字段進行預測比較,從而檢測算法預測精確性。
圖5 審計數(shù)據(jù)類別分布圖
從圖6所示的結(jié)果為本文算法與傳統(tǒng)隨機森林算法在不同規(guī)模審計大數(shù)據(jù)集下的實驗結(jié)果,可以看出,在數(shù)據(jù)規(guī)模較少時時,兩種算法的預測時間相近,且傳統(tǒng)方法略有時間優(yōu)勢,這主要是因為并行數(shù)據(jù)分塊及節(jié)點間通訊代價影響到預測速度;但隨著樣本規(guī)模增大,文中算法的時間優(yōu)勢越來越顯示,迭代預測所需的時間遠少于傳統(tǒng)方法。
圖6 兩種算法不同數(shù)據(jù)集規(guī)模預測所需時間
如圖7所示為文中并行算法與傳統(tǒng)決策樹算法在往年審計問題數(shù)據(jù)統(tǒng)計基礎(chǔ)上,以2017年審計問題發(fā)生頻數(shù)作為疑點進行預測結(jié)果,預測結(jié)果仍是多次實驗后的平均值。可以看出,文中算法審計疑點預測要比傳統(tǒng)方法更精確,這主要是因為文中并行改進算法通過通過若干有放回的隨機抽樣生成的決策樹進行預測,既保留了決策樹的優(yōu)點又克服其一些缺陷,表現(xiàn)出更好的預測性能。
圖7 兩種算法審計疑點預測結(jié)果
以式(4)平均相對誤差來評價15類審計問題發(fā)生概率預測的結(jié)果,多次實驗結(jié)果的平均值得到,文中并行隨機森林算法的平均相對誤差1.43%,而決策樹平均相對識別為2.12%,說明文中算法的預測精度略優(yōu)于決策樹。
式中Yi與yi分別為審計問題概率真值與預測值。綜合以上兩個實驗結(jié)果可以看出,文中并行隨機森林算法在運行速度和預測精度上都取得了較好的實驗結(jié)果,說明文中算法適于審計大數(shù)據(jù)下審計疑點發(fā)生概率預測,可為審計計劃的制定提供數(shù)據(jù)支撐。
為使審計計劃的制定具有科學的數(shù)據(jù)支撐,在審計大數(shù)據(jù)背景下,提出基于并行改進隨機森林算法的審計疑點發(fā)生概率預測算法。首先建立基于Hadoop的電力企業(yè)審計大數(shù)據(jù)管理方案,將各電網(wǎng)子系統(tǒng)采集到的異構(gòu)審計數(shù)據(jù)整合并存儲,在此基礎(chǔ)上,實現(xiàn)基于三層MapRaduce的并行化改進隨機森林算法預測審計疑點發(fā)生概率,以滿足大數(shù)據(jù)對算法運行效率的要求。實測數(shù)據(jù)對比實驗驗證了算法的有效性。