盧利娟 余從容 梁東貴 張偉政
(廣州供電局有限公司 廣州 510000)
隨著電網企業信息化部署的完善以及業務系統和信息系統的逐步上線,電力企業產生的電子數據比以往更多,審計數據呈海量化的增長,存儲規模從GB級增長到TB甚至PB級,形成審計大數據庫[1]。面對海量以及快速增長以及包含結構化、半結構化以及非結構化等結構類型繁多復雜的審計大數據,如何對其進行可靠存儲、高效管理和快速分析,充分發揮大數據在發現數據證據方面的全覆蓋優勢,是當前重要的研究課題。
國家層面已愈發重視電力企業審計[2],對于審計業務部門,如何制定科學、有效的審計項目和審計計劃成為審計部門工作的重點。以往審計計劃的制定主要依據過往審計經驗、國家政策關注重點、審計單位關注重點等[3],缺乏客觀有效的、科學的數據支撐。而基于被審計單位各類已經發生的審計問題的歷史積累數據,探索未來某類審計問題可能性以及該類審計問題出現頻次的預測方法,以指導業務人員展開審計工作,既能發揮審計大數據全覆蓋優勢,又使得根據預測制定的審計計劃更具有客觀科學的數據支持,因而對于電力企業數據審計具有重要意義。
為此,在研究已有大數據相關技術的基礎上,建立一種基于Hadoop集群的電力企業審計大數據管理方案,利用Hadoop集群搭建數據存儲平臺,將各電力企業散的子系統中產生和存儲數據進行整合并存儲,在此基礎上,以審計疑點概率作為目標變量,提出基于并行改進隨機森林的審計大數據審計疑點發生概率預測方法,為審計計劃的制定提供數據支撐,采用不同規模的大數據集對算法進行實驗,實驗結果驗證了算法的有效性。
針對電力企業各不同的子系統產生的海量且結構異構的審計大數據,如何構建同一規范表達的模型以實現數據整合是亟需解決的問題。為此,在進行大數據審計疑點預測前,在云計算[4]基礎上,結合審計大數據管理與分析的實際需求,利用Hadoop構建如圖1所示審計大數據管理平臺,平臺由應用層、云計算數據處理層和管理層三部分組成,存儲系統由HDFS、HBase與Hive建立,大數據的分析處理則由MapReduce和Spark并行計算框架完成。
數據管理層主要將電網異構數據整合至平臺以高效管理,文中使用第三方Sqoop和Datanucleus工具進行操作,sqoop工具將電力子系統的結構類型各異的數據整合到Hive與Hbase中[5],Datanucleus工具的按列存儲操作能力,將在線產生的數據寫入到HBase中,抽取整合流程如圖2所示。
云計算處理層主要完成對審計大數據的存儲及挖掘、預測等計算功能,其由Hadoop搭建。
根據已有大數據存儲方面的研究[6~9],文中數據存儲在HDFS分布式文件系統中,考慮到審計數據的保密性和安全性,利用Hbase數據庫的高性能和現代密碼技術優勢,將存儲系統的密鑰與密文管理相分離。采用MapReduce[10]并行計算模型完成大數據的并行批量計算,而Spark內存并行計算模型則完成密集型數據的迭代。Spark彌補了Hadoop在快速迭代上的速率不足。Spark內存并行計算框架將所需數據讀入內存,在內存中完成所需數據的查詢,從而比MapReduce的基于磁盤數據訪問速度快的多,提高運行效率并減少不必要的IO操作。
應用層主要在去計算數據處理層功能基礎上為電力企業各部門提供功能接口。
審計疑點預測為審計計劃的制定提供科學有效的數據支撐。目前,決策樹在傳統預測中應用廣泛[11~12],且取得較好的研究成果,但其在大數據審計疑點預測中還存在內存需求大、影響隨機因素多等不足,無法滿足大數據下審計疑點預測要求。隨機森林算法[13]是多決策樹集成方法,決策樹由Bagging理論和Ho隨機子空間理論[14]得到,最終結果為各樹結果綜合,具有良好的并行擴展,適于文中快速疑點預測。
算法是由一系列分配有獨立的樣本訓練集TS的分類回歸樹組成的,其中獨立訓練樣本集根據Bagging算法抽取,且與總樣本集等規模,而內部節點則是由Ho理論選取的隨機屬性子集構成,從而形成樹群,最終結果為各樹結果投票或平均得到,圖3所示為單樹訓練流程。
圖3可以看出,單樹構造主要根據屬性子集進行分支,然后在子樹上重復執行劃分過程,直到滿足停止生長條件。

圖3 隨機森林算法單樹訓練
Gini指數度量節點的不純性,適于算法中分類樹的構建,其計算式為[13]

式中:t為節點屬性,p(j/t)表示 j類目標在當前節點比例。最小二乘偏差適于算法中回歸樹構建,節點t擬合后,其誤差表示為

式中nt為節點數據實例數,kt為實例數據目標值均值kt=(∑yi)/nt,節點t最小二乘偏差標準為使式(3)最大

式中SL=∑DiLyi,SR=∑DiRyi,s為屬性值。
集成學習思想為隨機森林算法實現并行化處理的基礎,但其并不僅僅是K個樹模型的簡單組合,Bagging有放回的抽樣,使得訓練樣本集中約有37%的數據差異[15],且構建過程獨立,確保了訓練過程數據的并行化,從而提高模型生成的速率,而隨機子空間方法在進行節點屬性測試時,隨機抽取避免了所有屬性的讀入和過度擬合?;诖宋闹刑岢隽嘶贛apReduce的并行改進隨機森林算法對審計計大數據進行審計疑點預測。改進算法在訓練階段由3個MapReduce作業類前后依次完成數據字典生成、決策樹生成、隨機森林形成,訓練后的模型保存在Hadoop分布式集群中。
數據字典生成即為對訓練樣本描述其條件和決策屬性,并形成一個記錄條件屬性類型和決策屬性位置以及最終模型屬性的描述文件。數據字典生成過程由第一個MapReduce完成,其一個Map過程完成一部分數據的讀取,并完成描述文件的生成,描述文件在Hadoop中以以key/value的的數據模式保存到HDFS中,用于后續的MapReduce調用。
決策樹生成是算法并行改進的核心部分,其并行實現過程由以下幾個方面組成。
1)Bagging并行抽取Dataset集中原數據集的k樣本子集,TS1,TS2,…,TSK,由于采用有放回,所以并行抽樣不會對訓練子集TSi產生影響,且子集與原數據集同規模,這樣保證訓練子集的差異又不會改變原數據集的知識規模。
2)每個訓練子集中,根據其屬性數M 計算隨機子空間屬性子集大小m?(m?M),即節點的隨機屬性個數,根據已有研究,對于隨機森林模型為分類模型,則取中m為M的方根,而為回歸模型時,取其為M的1/3。然后計算屬性的信息量,并根據最佳屬性進行分支。
3)遞歸運算完成節點的建立,進而生成所需的決策樹,遞歸過程如表1所示。

表1 決策樹生成的map偽代碼
Map程序可實現一個決策樹生成,K個樹并行生成。并行決策樹生成在第二個MapRaduce中實現,該過程僅進行Map過程而無Raduce過程。

圖4 并行隨機森林審計疑點預測流程圖
第三個MapRaduce過程主要根據生成的K個決策樹形成最終的隨機森林決策。使用并行隨機森林算法進行審計疑點發生概率預測的過程如圖4所示。模型依托Hadoop分布式集群實現審計大數據的分布式存儲,依托MapReduce進行并行化優化,從而充分發揮Hadoop集群在審計大數據上的存儲與高效計算能力完成審計數據的挖掘和預測,有效提高審計疑點發生概率預測的精度和大數據處理能力。
為驗證算法的有效性,構建了由40臺PC機組成的實驗平臺,每臺計算機配置為Inter(R)Core?i5-3470 CPU@3.2 GHz,8.00 GB內存。平臺中一臺作為主節點,對所有資源進行分配與調度以及管理文件系統,其他為數據節點,完成存儲和預測運算。分布在各獨立電力企業子系統中的審計數據通過開源Sqoop工具遷移到Hadoop集群。
采用某電力企業2013-2017年度審計數據進行實驗,審計問題劃分為15類,如圖5所示??偣?92020條風險統計數據,去重復和異常處理后,最終整理成6000條記錄,抽樣其中1300條記錄作為測試集合。
實驗分兩部分,首先將實驗數據人為擴充到大數據規模,取50次運行結果的平均值;其次根據未來審計問題的存在與否與往年是否發現類似問題以及其發現的頻數有關,將各類別的審計問題歷史數據按照時間(年)維度進行排序,將最近一年的審計問題發生的頻數作為目標變量,也就是2017年的審計問題發生的頻數作為目標變量,其余年份的作為分析字段進行預測比較,從而檢測算法預測精確性。

圖5 審計數據類別分布圖
從圖6所示的結果為本文算法與傳統隨機森林算法在不同規模審計大數據集下的實驗結果,可以看出,在數據規模較少時時,兩種算法的預測時間相近,且傳統方法略有時間優勢,這主要是因為并行數據分塊及節點間通訊代價影響到預測速度;但隨著樣本規模增大,文中算法的時間優勢越來越顯示,迭代預測所需的時間遠少于傳統方法。

圖6 兩種算法不同數據集規模預測所需時間
如圖7所示為文中并行算法與傳統決策樹算法在往年審計問題數據統計基礎上,以2017年審計問題發生頻數作為疑點進行預測結果,預測結果仍是多次實驗后的平均值。可以看出,文中算法審計疑點預測要比傳統方法更精確,這主要是因為文中并行改進算法通過通過若干有放回的隨機抽樣生成的決策樹進行預測,既保留了決策樹的優點又克服其一些缺陷,表現出更好的預測性能。

圖7 兩種算法審計疑點預測結果
以式(4)平均相對誤差來評價15類審計問題發生概率預測的結果,多次實驗結果的平均值得到,文中并行隨機森林算法的平均相對誤差1.43%,而決策樹平均相對識別為2.12%,說明文中算法的預測精度略優于決策樹。

式中Yi與yi分別為審計問題概率真值與預測值。綜合以上兩個實驗結果可以看出,文中并行隨機森林算法在運行速度和預測精度上都取得了較好的實驗結果,說明文中算法適于審計大數據下審計疑點發生概率預測,可為審計計劃的制定提供數據支撐。
為使審計計劃的制定具有科學的數據支撐,在審計大數據背景下,提出基于并行改進隨機森林算法的審計疑點發生概率預測算法。首先建立基于Hadoop的電力企業審計大數據管理方案,將各電網子系統采集到的異構審計數據整合并存儲,在此基礎上,實現基于三層MapRaduce的并行化改進隨機森林算法預測審計疑點發生概率,以滿足大數據對算法運行效率的要求。實測數據對比實驗驗證了算法的有效性。