王建琴
(河北北方學院附屬第二醫院,河北張家口 075100)
海量數據中的造假行為在各個行業中普遍存在,虛假或存在異常數據的報表可能會造成巨大損失[1-2]。在高度信息化的環境下,各行業的系統與數據量不僅規模龐大且結構更為復雜。如何及時有效地從海量數據中識別出異常數據,并避免欺詐行為的存在,是一個具有重要意義且亟需解決的問題。針對此,文中基于改進決策樹(Decision Tree)技術提出了一種智能化的數據挖掘(Data Mining,DM)與分析算法,用于分析醫療財務報表并識別異常數據。大量的研究表明,數據挖掘技術在財務數據檢測中具有較強的可行性。因此,利用數據挖掘技術從數據中提取關鍵信息是該文算法的核心。數據挖掘技術可消除海量數據中非必要的信息,再通過決策樹對提取的關鍵信息進行逐層推理,進而識別出異常數據。
數據挖掘可從海量數據中提取必要或有用的信息[3-5]。隨著互聯網技術的不斷發展,海量的數據與信息逐漸累積,數據挖掘技術便可在大量此類數據中找尋有價值的信息,再依據其做出決策。經過多年的開發及研究,眾多技術被數據挖掘所利用,且結果的準確性也越來越高。此外,數據類型隨著計算機技術和各種業務的發展而日漸復雜,數據量也逐漸龐大。因此,數據挖掘將發揮愈加重要的作用。常用的數據挖掘技術包括決策樹、聚類和回歸等[6-8]。
在海量醫療財務報表數據中,隱藏著大量非完整、不清晰且無規律的異常信息,而這類信息對于最終決策可能會產生不同程度的影響。因此,利用數據挖掘技術對其進行正確的分析是識別異常數據的關鍵。
決策樹是數據挖掘中一種成熟且被廣泛使用的技術[9-11]。其通過采用不同的對象屬性將對象子集進行分類,而并非僅利用一個屬性或一組固定屬性,由此較好地適應了分類問題。該技術是一個預測模型,代表了對象屬性與對象值之間的映射關系,也是統計學、數據挖掘與機器學習(Machine Learning,ML)中常用的預測方法之一。在該文研究的醫療財務報表異常檢測任務中,決策樹的葉子節點代表標簽,而樹枝則代表生成某個標簽的特征連接。與其他分類方法相比,決策樹的構建速度相對較快且可獲得更優的準確性,其結構如圖1 所示。主要元素有根節點,包含樣本的全集;內部節點對應特征屬性值;葉節點代表決策的結果。

圖1 決策樹結構
預測時,判斷樹的內部節點處于何種屬性值;再由判斷結果決定下一步的分支節點,直至判斷到葉節點處;最終,得到分類結果。
文中設計的醫療財務報表檢測算法整體框架如圖2 所示。該框架主要包括數據輸入、數據處理、主成分分析及決策樹學習等步驟。整體流程:首先,輸入醫療機構財務數據;然后,進行數據預處理,去除存在空值與信息不完全的屬性,并對數據進行統一化及標準化處理等;再由主成分分析法對數據進行降維,進而消除數據中不相關的特征;最終,利用改進的決策樹算法C4.5 建立分類預測模型,識別異常數據并輸出結果。

圖2 醫療財務報表檢測算法架構圖
為實現數據降維,將主成分分析法(Principal Component Analysis,PCA)[12-14]應用于醫療機構的財務數據中。通過該方法可消除數據中相關性偏低的屬性,從而獲得更優的結果。例如將醫療機構財務數據中的N維特征屬性降至K維,而這類K維特征則是該數據中的主要成分。PCA 能夠識別數據集的屬性,并找到每個屬性間的相似性與差異,其通過計算原始數據中的均值與方差,進而得到協方差矩陣,再利用該矩陣計算特征向量及特征值。由于特征值展示了數據集屬性間最顯著的關系,所以可根據該值來確定醫療機構財務數據的主要成分。最后再對特征值進行升序排序,即可選擇重要數據、丟棄次要數據。通過這種方式完成降維,則更有利于分類器從海量數據中學習關鍵信息并進行識別。
首先計算樣本數據集每個屬性中的均值xˉ和方差S2,計算方式為:
式中,n代表某個屬性的數據維度,i表示第i個維度,xi表示x屬性第i個維度的數據。
然后計算協方差,并判斷兩個屬性間的關系,若協方差為零,則表示二者并無關系。例如屬性x與y協方差的計算公式為:
式中,yi表示y屬性的第i個維度的數據,yˉ為y屬性的均值。
最終計算協方差矩陣的特征向量和特征值,并將特征值從大到小進行排序。再保留特征值最大的前K個值,而其所形成的K個維度屬性即為降維后的屬性。
為了分析醫療機構財務數據并預測其中是否存在異常數據,文中采用決策樹作為分類器。同時針對決策樹中特征選擇的不足,使用改進的決策樹算法C4.5 來解決此問題[15-16]。該算法利用信息增益率作為特征選擇的度量,能克服屬性值分布不均衡的問題;然后通過構建分類樹來識別醫療財務報表數據,從而有效提高識別準確率。
改進的決策樹算法C4.5 計算步驟如下:
1)計算香農熵
香農熵是用以衡量數據樣本異質性的參數。若熵值最大,則說明樣本更加不均勻,其定義如下:
其中,P為樣本集合,n表示類別數,pi為樣本集中每類樣本所占樣本總數的比值。
2)計算信息增益
求出每個屬性的香農熵之后,便可決定屬性的順序。通過映射最大的信息增益來構建決策樹,則信息增益Gain 的定義為:
其中,Ent為對應屬性的香農熵。
3)計算屬性分裂信息度量
通過引入屬性的分裂信息度量來調節信息增益,分裂信息度量SplitE 可通過式(6)進行計算:
4)計算信息增益率
將分裂信息度量作為分母,信息增益則為分子,從而抵消部分屬性取值數目所帶來的影響。信息增益率GainRatio 的計算式為:
重復步驟2)-4)即可得到每個屬性的信息增益率,而根節點即為信息增益率的最大值。由此便可實現對決策樹的學習,最終利用該決策樹對未知的數據樣本進行測試。
該文通過Python進行實驗仿真,驗證所提算法的有效性與可行性。具體實驗環境參數如表1所示。

表1 算法實驗環境
實驗數據采用自行收集的醫療機構財務報表數據,主要可分為異常與正常兩大類。其中異常數據包含多個經典及最新案例,例如康美藥業財務造假案和亞太藥業財務造假案等。實驗數據樣本中不同類別的數量如表2 所示,其中,正常樣本1 742 個,異常的則為1 767 個,且數據分布較為均衡。每個樣本中均包含了諸多不同的屬性特征,如營業收入增幅、營業成本等共239 個屬性值。同時還帶有每個樣本的標簽,即該樣本屬于正常或異常。

表2 實驗數據分布
在數據預處理過程中,還將數據表格內存在空值、等值及信息不完整的屬性等加以剔除。原因是該類屬性在實際情況下并非是造成數據異常的主要原因,但在決策樹學習的過程中,可能會將其誤認為是做出決策的關鍵屬性,從而導致識別有誤。例如數據報表中的報告類型均為A、貨幣代碼均為CNY等。剔除之后,最終的屬性還剩178 個。
數據中不同屬性間的特征值大小可能相差較大,若此時進行主成分分析,會導致在映射特征時偏向于數值較大的特征值,而忽略了數字較小的特征值。但在進行PCA 之前并未掌握每個屬性的重要度,若直接使用PCA 對報表數據進行降維,可能會導致信息丟失。因此在對數據進行主成分分析前,還需先對預處理之后的數據執行Z-Score 標準化,將特征值處理為滿足正態分布且均值為0、標準差為1 的規范數據。Z-Score 標準化的計算公式如下:
其中,zi表示在Z-Score 標準化之前的第i個變量,u表示全部數據的均值,a為全部數據的標準差,zˉi表示在Z-Score 標準化之后的第i個變量。
實驗仿真流程如圖3 所示。首先,對輸入的數據進行預處理,將數據樣本隨機劃分為訓練集與測試集;然后,采用主成分分析法對兩組數據中的屬性完成降維;接著,利用訓練集對改進的決策樹算法C4.5 加以訓練;最后,將訓練后的C4.5 算法在測試集上完成測試,進而得到最終的識別結果。

圖3 實驗流程圖
實驗仿真中,先將實驗數據進行預處理,再利用PCA 進行主成分提取,從而達到降維的目的。原始數據經過處理之后的維度為3 509×178,其中3 509為樣本數量,178 為預處理后的樣本屬性數量。在PCA 中通過將預處理后的數據進一步降維,并計算數據樣本中每個屬性的特征值大小。隨后再進行降序排序,最后選擇前50 個屬性作為決策樹的輸入數據。
該文通過數據預處理及主成分分析將原始數據的維度從3 509×239 降維到3 509×50。然后再按照7∶3 的比例劃分為訓練集和測試集,其中訓練集有2 456 個,測試集有1 053 個。首先利用訓練集對改進的決策樹C4.5 進行訓練,構建醫療財務報表分類樹;然后使用測試集對構建出的決策樹進行測試。
最終,所提算法在訓練集上的識別準確率為98.40%,在測試集上則為96.91%。由此證明該算法能夠較為準確地識別出異常財務數據。同時還將該算法與多種數據挖掘技術以及機器學習算法進行比較,具體結果如表3 所示。其中,決策樹算法ID3 的準確率僅為76.23%。與其相比,K 近鄰算法(K-Nearest Neighbor,KNN)、極限學習機(Extreme Learning Machine,ELM)等機器學習算法則表現更優。而準確率最高的是支持向量機(Support Vector Machines,SVM)算法,達到了86.11%,但仍低于該文算法的96.91%。

表3 仿真實驗對比結果
該文算法在進行決策樹學習之前加入了PCA,使得數據樣本中的維度大幅降低,且提高了識別速度。通過實驗仿真,還驗證了該文算法對數據進行主成分提取之后性能得到較好提升。改進決策樹C4.5 與該文算法的性能對比如表4 所示。由表4 可知,對比算法在未對數據樣本進行主成分分析時,仍需對每個樣本中的239 個屬性進行學習。其中一些重要性較低的屬性不僅無法給最終的識別結果帶來增益,還會造成算法識別速度較慢。而在所提算法中,除了識別準確率有了顯著提升外,還可進一步加快識別速度。

表4 識別性能對比結果
為了對海量數據中的異常數據實現快速、準確地識別,文中提出了一種基于數據挖掘與改進決策樹的數據分析算法。該算法使用數據挖掘技術主成分分析提取數據中的重要特征,從而降低海量數據的維度,并利用改進決策樹算法C4.5 識別出異常數據。采用真實醫療財務數據進行的實驗仿真結果表明,所提算法不僅能大幅提升識別準確率,還能顯著提高識別速度。同時,其性能也優于所對比的其他數據挖掘技術與機器學習算法。