[摘要] 本文針對計算機審計的現狀,提出了基于數據挖掘的審計數據分析流程,以及應用DBSCAN聚類算法查找審計證據的方法。
[關鍵詞] 計算機審計;數據挖掘;聚類算法;噪聲數據
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2011 . 17. 033
[中圖分類號]F239.1 [文獻標識碼]A [文章編號]1673 - 0194(2011)17- 0057- 04
隨著經濟和信息技術的不斷發(fā)展,許多企業(yè)開始引入了ERP等系統,這些系統使得企業(yè)的眾多活動數據可以實時記錄,形成了大量有關企業(yè)經營管理的數據倉庫。從這些海量數據中獲取有用的審計數據是目前計算機審計的一個應用。對于審計人員來說,如何從被審計單位的海量數據中找出全面、高質量的審計數據從而找出審計證據是一個難題。本文利用數據挖掘技術對此問題進行了探討并提出了解決的方法。
數據挖掘(Data Mining)指的是從大量的、不完全的、有噪聲的、模糊的、隨機的實際應用數據中提取出隱藏的、不為人知的卻潛在有用的信息和知識的過程[1]。事實上,實際應用數據的質量和存儲模式對于實施計算機審計并成功獲取審計證據非常重要。由于被審單位信息系統軟硬件平臺的異構性和可能存在的人為故意隱瞞、造假等,為保證計算機審計工作順利進行和審計結論的正確,對審計數據進行采集時必須對數據進行檢查、控制和分析。
1審計數據采集
審計數據采集指在開展計算機審計時從被審計單位的財務及業(yè)務信息系統及其他數據源獲得審計所需的電子數據并進行適當的格式轉換[3]。一般來說,計算機審計中數據采集的方法主要包括以下幾種:
(1)利用被審單位信息系統的數據導出功能。大多數的信息管理系統都提供了數據導出的功能,審計人員直接可以利用該功能導出企業(yè)財務數據完成數據的采集。
(2)利用通用的數據處理軟件完成數據采集。如Access、SQL Server等都具有較強大的數據導入導出功能和數據轉換功能。審計人員可以利用這些軟件完成數據的采集。如被審企業(yè)原始數據為文本格式可以轉換為數據庫表格格式。
(3)利用審計軟件完成數據采集。如國家從2002年開始建設的“金審工程”就以現場審計實施系統(AO)及審計辦公系統(OA)作為計算機輔助審計的工具。別外應用國內的企業(yè)財務審計軟件、審計數據采集分析軟件等都可以完成審計數據的采集。
(4)利用專用程序接口完成數據采集。當被審計單位提供的審計數據的數據結構與已有的審計數據處理軟件系統的數據結構差異較大時,可以在審計人員的協助下由專門的程序員開發(fā)接口程序,完成數據的采集,但成本相對較高。
2 數據清洗
利用數據挖掘對審計數據進行處理分類時,為了提高分類的準確性、高效性和可伸縮性,必須對數據庫進行預處理,包括:數據的清洗、相關性分析、數據轉換等。
文獻[4]中給出數據清洗的定義為:發(fā)現和消除數據中的錯誤和不一致來提高數據的質量。一般而言,審計數據庫中數據采集于異質操作數據庫,不可避免存在著數據的錯誤或不一致等問題,如數據造假、數據重復、數據缺失等錯誤。根據文獻[5]提出的審計數據質量特征,必須要對采集的原始數據進行清洗,即由“臟”變“干凈”,提高審計數據質量,這是保證審計結論正確的關鍵。
數據清洗的一般過程如圖2所示。
(1)數據分析:為了清洗出干凈的數據,必須對數據進行詳盡的分析,包括數據的格式類別等。比如采集來的財務數據的字段類型、寬度、含義等。
(2)模式轉換:模式轉換主要是指將源數據映射成目標數據模型,如屬性的轉換,字段的約束條件和數據庫中各個數據集之間的映射和轉換等。有時需要將多個數據表合并成一個二維表格,有時卻要將一個數據表拆分成多個二維表格以便于問題的解決。
(3)數據校驗:上一步的模式轉換可行否,需要進行評估測試,經過反復分析、設計、計算、分析才能更好地清洗數據。否則不經過數據校驗可能有些錯誤數據不是很明顯,不能被很好地篩選出來。比如模式轉換時將一個數據集分解成多個數據表的時候,造成父表的主關鍵字的值和子表外部關鍵字的值不一致,從而形成孤立記錄,影響審計人員審計證據的正確性,進而影響審計結論的正確性。
(4)數據回流:用“干凈”的數據替代原始數據源中的“臟”數據,避免下次數據采集時重做數據的清洗。
有時候數據的清洗需要反復進行,審計人員需要對采集到的電子數據進行多次清洗,這樣才能得到高質量的審計數據。
3 數據挖掘實現
經過數據預處理后的審計數據庫包含了多個數據集,每個數據集又包含了若干數據記錄或者稱為元組,如何從這些二維表格數據中挖掘出有意義的審計數據至關重要。本文介紹一種利用聚類算法進行審計數據挖掘的算法。
3.1 算法概述
3.1.1聚類算法
所謂聚類就是根據相似性對數據對象進行分組,發(fā)現數據的分布特征,使得每個聚類中數據有非常高的相似性而不同聚類中的數據盡可能不同[6]。它同分類的主要區(qū)別在于,分類事先知道所依據的數據特征,而聚類是要找到這個數據特征。作為數據挖掘的功能,聚類分析可以作為一個獲取數據分布情況、觀察每個類的特征和對特定類進行進一步獨立分析的工具;聚類也能夠有效處理噪聲數據,比如數據庫中普遍包含的孤立點、空缺或錯誤數據等。
聚類分析算法通常有5類[7]:①基于劃分的方法,如CLARANS;②基于層次的方法,如CURE和BIRCH;③基于密度的方法,如DBSCAN、OPTICS、GDBSCAN和DBRS;④基于網格的方法,如STING和WaveCluster;⑤基于模型的方法,如COBWEB。其中DBSCAN算法具有很好的過濾噪聲數據的優(yōu)點。本文探討利用DBSCAN算法對審計數據進行處理,找出異常數據,查找出審計證據。
3.1.2 DBSCAN算法
DBSCAN算法的基本思想為[8]:對于同一個聚類中的每個對象,在給定的半徑d的鄰域中包含的對象不能少于某一個給定的最小數目MinPts(也稱密度)。
為了生存一個聚類,DBSCAN算法首先從數據集DB中選擇任意一個對象p,并查找數據集DB中關于半徑d的所有鄰域對象,如果這個鄰域對象的個數小于最小數目MinPts,則p為噪聲數據;否則p的鄰域對象形成一個初始聚類N,N中包含對象p及p直接密度可達的所有對象。然后確定該類中的每一個對象q是否為核心對象,若是,就將q的d—鄰域內尚未包含到N的所有對象追加到N中,并繼續(xù)判定新追加的對象是否為核心對象,如果是,重復上述追加過程,直到這個聚類不能再擴大為止。然后DBSCAN算法再在數據集DB中另選一個沒有被標識為某個聚類或者噪聲的對象,重復上面的操作,一直到數據集DB中的所有對象要么被標識為某個聚類、要么被標識為噪聲數據為止。
DBSCAN算法進行聚類的過程就是不斷執(zhí)行數據集查詢比較的過程,最后產生的噪聲數據就是通常所說的異常數據,對于幫助審計人員進行審計判斷非常有效。圖3表示了二維平面坐標下的噪聲數據和若干聚類。
3.2數據模式定義
3.2.1項間的距離
設Ri和Rj是數據集DB中的任意兩條記錄即某兩個數據項,它們之間的距離定義為:
式中,Ri(Rix,Riy),Rj(Rjx,Rjy)表示數據集中兩個項Ri和Rj在二維空間的坐標點,因此dij表示Ri和Rj在二維空間坐標的距離。如果dij大于給定的值d,則表示Ri和Rj不屬于同一個聚類分組。
3.2.2審計數據預處理
數據挖掘時數據的選擇是在二維平面上進行的,首先選擇列(字段或屬性),再選擇行(記錄或元組)。為了能夠獲得有效的審計證據得出正確的審計結論,有時候必須對源數據集進行數據轉換。
因為各個企事業(yè)單位的規(guī)模不同,財務數據的數量級或者數量單位可能不同,為了得到更加科學可靠的聚類分析結果,需要對財務數據進行預處理,一般進行比例變換。如將x軸定義為某公司某月營業(yè)收入與利潤總額的比值,將y軸定義為財務費用與凈利潤的比值,這樣處理的數據能更好地反映該企業(yè)的實際情況。這里的財務數據預處理都是由用戶來定義的,可以根據不同的審計要求和審計目的來定義。
建立一個新的二維表格數據至少包含4個屬性項:記錄號,x軸數據,y軸數據,標記。其中記錄號保持對應源數據集DB中的記錄號, x坐標和y坐標即為經過比例變換后的數值,標記字段初始內容為空。
3.3算法描述及流程圖
給定一個計算機審計數據集,假設具有N個元組或者記錄,利用DBSCAN算法思想構造出L個分組(L<N),每個分組代表一個聚類。且L個分組必須滿足如下條件:
(1)每個分組至少包含MinPts個元組。
(2)每個分組中的任意兩個元組直接的距離小于等于給定的距離d。
(3)每個元組僅屬于一個分組。
圖4為實現審計數據挖掘的算法(稱為AUDBSCAN)的流程圖。
3.4 聚類算法的實現
算法:審計數據挖掘聚類算法(AUDBSCAN)
輸入:根據數據集DB產生的二維表格數據
//至少含有4個字段:rec 記錄號,rx x坐標數據,ry y坐標數據,rno 標記
半徑d //度量密度的距離
密度MinPts //簇中的數目
輸出:噪聲數據記錄
Algorithm AUDBSCAN(data,d,MinPts)
For each record in data do
Ifeach reccord in data is marked
Output noise reccord //輸出標識為噪聲的數據
Else
For each reccord in data is not marked noise or classer do
P←Rand(a reccord is not marked noise or classer) //隨機選取沒有被標記的記錄p
L←Found(p,d,MinPts) //找到p關于d的MinPts密度可達記錄
If s=recount(L)<MinPts
P is marked noise
Else
N←Found(p,d,MinPts)
Each reccord in N is marked classer
For each reccord in N do
q←one reccord
If q is a center record //q為核心記錄
N←found(q,d)
Endif
Endfor
Endif
Endfor
Endif
Endfor
在AUDBSCAN算法中,利用Rand()函數產生第一個隨機記錄p,利用Found()函數產生p關于d的MinPts密度可達記錄。該算法最后的結果和隨機產生的第一條記錄相關,形成的聚類可能有不同,但得到的噪聲數據一致,因此對于審計證據的查找是有效的。
4 結論
數據挖掘技術與海量數據下審計業(yè)務的有效結合是未來計算機審計的一個發(fā)展方向。本文主要介紹了審計數據的采集、數據的處理轉換和數據的挖掘3個方面,并且在數據的挖掘方面采用了基于聚類的DBSCAN算法來快速、準確、高效地輸出噪聲數據。該算法中涉及的二維平面x,y軸坐標可以根據實際審計需要由審計人員加以定義,因此可以應用到各類審計實踐中去。另外,可以將DBSCAN算法擴展到三維空間上,只要再加上一個z軸數據,當然z軸數據也應該是和x,y軸數據相關的一個比例數據,此時聚類的結果將會變成一個不規(guī)則球體,從而能夠更加容易挖掘出未曾發(fā)現的知識,也更加容易發(fā)現數據間的潛在聯系。
主要參考文獻
[1][加]Jiawei H,Michelline K.數據挖掘概念與技術[M].范明,譯. 北京:機械工業(yè)出版社,2004.
[2]陳偉,張金城,Robin Qiu.審計數據處理實驗中的模擬數據生成系統[J].計算機工程,2007(19).
[3]王琦峰,胡玲玲. 基于AO的審計數據采集方法 [J].計算機系統應用,2009(3).
[4]米天勝,張金城. 面向數據的計算機審計中數據質量問題的探討[J].審計與經濟研究,2006(1).
[5]王昊,朱文明. 審計數據質量研究:從審計取證的視角 [J].南京大學學報:自然科學版,2007(1).
[6]楊磊,李建軍,張志軍,孫翠娟.談數據挖掘中常用的聚類算法[J].中國成人教育,2008(4).
[7]胡彩平,秦小麟.一種改進的空間聚類算法 [J].模式識別與人工智能,2007(3).
[8][美]Margaret H Dunham. 數據挖掘教程 [M].郭崇慧,譯.北京:清華大學出版社,2005.
[9]劉蓉,陳曉紅. 基于數據挖掘的移動通信客戶消費行為分析[J].計算機應用與軟件,2006(2).
[10]李明華,劉全,劉忠,郗連霞.數據挖掘中聚類算法的新發(fā)展 [J].計算機應用研究,2008(1).
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文