王建琴
(河北北方学院附属第二医院,河北张家口 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 识别出异常数据。采用真实医疗财务数据进行的实验仿真结果表明,所提算法不仅能大幅提升识别准确率,还能显著提高识别速度。同时,其性能也优于所对比的其他数据挖掘技术与机器学习算法。