APP下载

基于改进的两阶段聚类方法在金融可疑识别中的应用

2010-05-22吴玉霞牟援朝

统计与决策 2010年5期
关键词:字段聚类建模

吴玉霞,牟援朝

(华东理工大学 商学院,上海 200237)

0 引言

尽管金融犯罪活动受到了全球的关注,由于金融制度的不足和监控体系的不完善等原因,当前金融犯罪活动尤其是洗钱活动则日益突出,反洗钱问题须亟待解决。各国金融机构保存了大量的客户资料和交易行为记录,这些记录包括了交易资金的流动性和交易次数波动性等,利用信息技术从这些海量的数据中识别出正常的和异常、可疑的交易行为成为各国打击洗钱犯罪的有效手段,而数据挖掘技术的科学性和有效性则满足了当前的需求,受到了反洗钱工作部门的重视,成为当前研究的热点问题。

本文拟通过数据挖掘的聚类技术来对客户进行管理和区分。大多数单一的聚类技术都有其自身的优缺点,并且其重点在于高质量的聚类结果,而将潜在的需要挖掘的孤立点当作噪音等自动删除或忽略掉。本文针对金融机构客户的数量巨大,维数较高等特点,拟将传统的层次聚类和划分聚类进行结合,实现优势互补,并对其进行相应的改进,从而有效识别出异常值和孤立类,本文以期通过该方法的实现,为孤立点的进一步挖掘提供有效的高质量数据。

1 层次聚类和划分聚类

1.1 层次聚类

层次的方法是对给定数据对象集合进行层次的分解。根据层次的分解如何形成,层次的方法可以分为凝聚的和分裂的[2]。凝聚的方法也称为自底向上的方法,一开始将每个对象作为单独的一个组,然后相继地合并相近的对象或组,直到所有的组合并为一个(层次的最上层),或者达到一个终止条件。分裂的方法又称为自顶向下的方法,一开始将所有的对象聚成一个簇。在迭代的每一步中,一个簇被分裂成更小的簇,直到最终每个对象在单独的一个簇中,或达到一个终止条件。

大多数层次聚类方法是属于凝聚的方法,它是由小类逐渐聚为大类的过程,可以通过谱系图形象的表达出来,由合并的距离可以看出它们的亲疏程度。各种凝聚型的聚类步骤基本相同,所不同的是类与类之间的距离定义不同[2]。类间距离的不同定义就产生了不同的聚类方法。常用的簇间距离度量方法有最小距离、最大距离、平均距离和平均值的距离等。

1.2 划分聚类

划分方法是给定n个对象或元组的数据库,一个划分方法构建数据的k个划分,每个划分表示一个聚类,并且k小于等于n。其基本思路是[3]:首先从数据集中随机地选择几个对象作为聚类的原型,然后将其他对象分别分配到由原型所代表的最相似、也是距离最近的类中。对于分割聚类方法,一般需要一种迭代控制策略对原型不断地进行调整,从而使得整个聚类得到优化。k-平均法(k-means)是使用最为广泛和经典的划分方法,它是以k为参数,把N个对象分为k个类,使类内具有较高的相似度,而类间的相似度较低。

k-means算法过程[3][4]包括输入输出,即

输入:包含N个数据对象的数据集及要生成类的数目k。

输出:k个类,使平方误差准则为最小。

具体算法过程为:

(1)任意(或人为)地选择k个对象作为初始的聚类中心;

(2)计算每个对象与聚类中心的距离(平方误差),将每个对象赋给最近的类;

(3)重新计算每个类中对象的平均值;

(4)如果均值与上一个循环相比不再发生明显变化,结束;如果发生变化则返回到第(2)步,直到收敛为止。

从算法的过程可以看出,k个初始聚类中心的选取对聚类结果具有较大的影响,因为算法的初始类中心是任意选取的。

2 改进的两阶段聚类算法

很多传统的经典的数据挖掘算法都尤其优缺点,关键是要选择适合的算法应用在特定的环境里。针对上面两种算法的优缺点,提出将两种算法结合起来,并进行相应的改进。

2.1 两阶段聚类方法的基本思想

(1)采用层次聚类方法对聚类源数据集进行聚类,得到初始聚类结果,找出异常值并保存到黑名单表中。

(2)从待聚类的源数据集中将找到的异常值提取出来作为进一步调查的基础数据,同时得到另一个待聚类对象集D(从源数据集中除去异常值的对象集)。

(3)采用K-means算法对D进行聚类,其类数和聚类中心是来自层次聚类得到的结果。

(4)得到对象集D的聚类结果,再将异常值单独作为一类,获得聚类结果和异常类。

(5)对所挖掘出来的异常值和异常类汇总到黑名单中进一步进行异常挖掘,对聚类的结果进行正常模式和可疑模式的分析,并在聚类的基础上进行全局孤立点检测。

2.2 改进的方法

从算法的流程中可以看出,两者方法的结合很好地弥补了K-means算法的不足。同时能够有效的识别出异常数据,为反洗钱可疑识别中的应用打下了基础。但由于在金融应用中,数据量巨大,而起始使用的层次方法由于其高的复杂度,不适宜用于大数据集的挖掘,效率比较低,消耗时间和内存比较大,因此,必须对其进行进一步改进。

改进的方法主要有两种:

(1)从样本中抽取一些子样本进行层次聚类。此方法的思路是从大样本数据中随机的或按一定的规则抽取出部分子样本进行聚类分析,这样基本上可以得出较准确的聚类数和聚类中心,并能有效缩短其检查和计算所需的时间。

(2)采用两步聚类(Two-step)的方法。第一步是单独通过数据,把原始数据压缩成易处理的子类集。第二步使用层次聚类方法,将子类逐渐合并成越来越大的聚类,不需要再次通过数据。许多层次聚类从单个记录开始分群,逐步合并从更大的聚类。两步聚类的最初的预先聚类使层次聚类即使处理大型数据集也很快,能够自动的排除出离群点。

第一种改进的方法在一般的聚类分析中比较有效且实用,但在反洗钱可疑识别中的重点是异常值的发现,而此改进方法由于其抽样性会降低对异常值发现的功能,因此在可疑识别中的应用并不是很合理。第二种方法能够较好的处理大型数据集且能处理异常值,因此在金融可疑识别中更为实用。本文采用第二种方法进行应用研究。

3 改进的算法在反洗钱中的应用

3.1 数据准备

本文在选择样本数据时特选取信息化程度比较高的券商,其完整的数据库建设保证了数据的准确、完整和一致性,使得本文的分析结果比较客观。本文选取了国内著名券商A的一个营业部A的数据。券商A为国内十大券商之一,资产状况良好,不属于高风险券商,而且其在国内属于较早建立反洗钱系统的券商,数据库数据可靠性和完整性较高。本文共采集了营业部A的44247条证券交易数据、7227条客户资产和2665条资金存取数据,时间采集区间为2009年5月8日至2009年6月8日,并在后文数据预处理中增加若干人工数据用于模型识别效果的评价。

3.2 属性选择

数据库中的数据包含着大量的属性,每个客户账户数据库中的属性就有几十个,并不是每个属性都是可用的,如果将不相关或相关性很小的属性用于建模,将会使得计算代价呈几何级增加。因此需要提取出与挖掘目标最贴切的最相关的属性。

选取属性的标准是要能够对可疑的洗钱活动进行描述,并且要反应证券公司的交易特点。一个典型、完整的洗钱过程可以分为三个主要阶段:放置阶段、离析阶段和归并阶段。在实际的洗钱操作过程中,三个阶段有时很明显,但大多情况则是则交叉运用,难以截然分开。一般来说,对洗钱者而言放置阶段是最困难的一步。在放置阶段其资金流动的明显特征就是入账资金数量巨大,而进入离析阶段后,资金总量不再发生剧烈变动,而资金存取的频繁性表现加剧,资金从一个账户频繁地转入转出,且流向极其复杂。经过对洗钱活动资金存取的特征进行分析,得出结论:聚类方法中的属性应该包括对资金存取数量、资金存取频次和交易情况的描述。

总的来说,结合证券公司客户的交易账户特征可以定义5个属性:账户资产总额、月交易次数、月存取次数、月交易总额、月存取总额。

3.3 聚类分析过程

当前数据挖掘技术的建模工具很多,本文使用的建模工具是Clementine软件。Clementine软件使用图形象征的方法,其功能是通过拖拉鼠标和连接屏幕上的功能节点来实现的。实现模型的过程主要是分为两步:一是对客户数据库中的数据进行预处理;二是用Clementine工具挖掘模型的建模实现。

3.3.1 数据预处理

本文是从证券公司客户的数据库中抽取出相关的字段,截取一个月的交易记录并导出到Excel表中用于作为分析的数据来源。

将得到的数据分别导入到SQL Server2005中建成的3张表中。通过属性的选取、表的合并以及对原始数据进行了处理,剔出了一些非交易数据,如手续费收取、返还和红利、红股派发等的记录数据。经过处理,共整理出了1131条数据记录。文中通过增加10条人工记录来验证聚类可疑识别的效果。其中5条记录表现的特点是交易次数较少,但存取较频繁;另5条记录则是交易很频繁,存取次数一般。这两个特点都是可疑报告中的特征。因此共1131条真实记录和10条人工记录。每个客户账户包含如表1所示的6个字段。

表1 字段名称

3.3.2 两步聚类可疑识别过程和结果

经过数据预处理的过程,我们已经将数据转换成适合模型且易于挖掘的形式。主要任务就是要把准备好的数据输入到模型中,通过编辑并连接模型中的节点完成基于两步聚类的聚类过程,这里应用的建模节点为Two-step节点。

在应用Clementine进行聚类时,要先设置Two-step节点模型选项,对Two-step建模节点的设置如下:

使用分区数据,选择分区字段位于流中,将数据分割成数个,用于训练、测试和验证的单独样本,并且可能提供当模型扩展为可适用于大型数据集时,该模型的能力说明;

采用标准化数值字段。两步聚类会对所有数值输入字段进行标准化,使其具有相同的尺度,即均值为0且方差为 1;

离群值检测在预聚类步骤进行,会将相对于其他子聚类具有较少记录的子聚类视为潜在离群值,且重新构建不包括这些记录的子聚类树;

自动计算聚类数。两步聚类可以非常迅速地对大量聚类解决方案进行分析并为训练数据选择最佳聚类数。通过设置最大聚类数和最小聚类数指定要尝试的聚类解决方案的范围。本文设置最大聚类为15,最小为2。

基于两步聚类的细分结果如表2所示。

通过聚类的结果可以看出,聚类五和六两类由于其所含的记录数较少,所谓的“小模式”可疑性很大,因此将这两类数据存入到可疑名单表中,以作为进一步离群数据挖掘的基础数据。同时将剩下的4类数据作为第二阶段的聚类基础数据。通过输出的可疑名单数据可以发现,设置的10人工数据中有5条被识别出来。可见通过两步聚类能够处理一定的异常值。

3.3.3 设置K-means建模节点并进行划分聚类

K-means建模节点的设置如下:

指定聚类数。通过两步聚类,我们得出将数据划分成6类,由于除掉其中的异常情况,因此,数据还剩下4类,添加一个特殊类作为离群类的存取,将聚类数设为5;

表2 两步聚类的细分结果

停止条件。将迭代停止条件设为默认的终止准则,最大迭代次数先设定为20,差异的容忍度指定为小于0.00001,满足以上任意一个停止条件训练就会终止。由于用于K均值聚类的数据集规模不大,通常迭代的步数不会超过十步;

对集合字段重新编码。集合字段重新编码的作用是指定一个0至1之间的值用于把集合字段编码成一组数值型字段,默认值为0.5的平方根约0.70711,为重新编码后的变量字段提供合适的加权。值越接近1.0,集合型字段权重越大于数值型字段。本文选择默认设置处理集合字段。

K-means聚类的细分结果如表3所示。

表3 K-means聚类的细分结果

3.3.4 结果分析

在聚类分析时则根据每条交易的属性的相似程度进行聚类,当聚类结果显示,在聚类过程中所选取的所有属性都能发挥较大的作用,则说明聚类结果显著;若聚类过程中某一属性如年交易金额并没有使用,而仅使用年交易次数作为实际聚类过程中的聚类属性,或者聚类过程中没有太多使用某一个属性,此情况就说明所选取的属性不合适,并认为聚类效果不显著。由当前聚类的结果可以得出,所选取的5个属性均发挥了相应的作用,聚类结果比较显著。聚类1反映的是那些资产较小,存取活动和交易活动均较少的客户,可疑性较小;聚类5与1相比,存取次数较高,比较可疑;聚类4相比聚类1客户资产稍大,交易额也较大,可疑性较小;聚类2是资产较大,交易资金量较小、交易活跃,该类包含的记录很少,可疑性很大;聚类3与2相比,交易次数较少,金额较大,易存在大额存取和交易的情形,可疑性较大。

聚类2和3包含的记录均较少,且可疑性较大,将该两类的记录汇总到可疑交易名单中。通过聚类的记录结果,可以发现两步聚类未识别出的5条人工记录在聚类2中。

聚类分析是一个循环过程。若聚类结果不够显著,如第一阶段采用的两步聚类,需要将异常数据剔除出源数据,异常数据将被专门保存作为需要深入调查的可疑名单中,然后对处理过的原数据进行再次聚类,同时为了避免与上次聚类的结果重合和对其改进,需要改变聚类方法,如第二阶段采用的K-means聚类,依次类推,直到聚类结果显著为止。最后,将在聚类过程中的所有异常类数据进行汇总保存,所得数据集即为可疑数据,然后以账户为主题确定出可疑名单。

3.4 孤立点的进一步检测

孤立点的进一步检测可分为两个方面,一方面是进一步分析在两阶段聚类过程中识别出的被汇总保存到可疑名单中异常值和孤立类;另一个方面是在已完成的高质量的聚类的结果的基础上,进一步对每个类进行全局孤立点检测。对已列出的可疑名单中的记录进行检测比较简单,本文介绍对全局孤立点检测建模的过程和处理结果进行分析。

图1 孤立点检测建模过程

建模过程如图1所示,通过在聚类的基础上设置异常检测节点来完成异常模型的建立,每个记录都指定了一个异常指数$0-AnomalyIndex显示,该指数是组偏差指数与该观测值所属聚类中平均值的比。此指数的值越大,观测值与平均值的偏差就越大。通常情况下,指数值大于 2的观测值有可能是异常观测值,因为该偏差至少是平均值的两倍。

添加表节点并执行将建模的结果输出到Excel表中 (如图2所示)以查看得分数据。模型生成的 $0-Anomaly字段表明哪些记录为潜在异常记录。可在“设置”选项卡中选中了放弃记录选项,仅列出标记为潜在异常的记录。还列出了每条记录的整体异常指数值,同时给出了对等组和最有可能造成记录异常的4个字段。

图2 可疑程度得分

通过查看得分数据,得分表中列出的异常记录有31条,其中在Two-step聚类中未识别出的5条人工记录,仍放入孤立点检测中,其在得分表中$0-Anomaly字段均显示T(表示属于异常),可见异常检测的效果比较显著。情报分析部门可以根据自身的状况和资源的情况,按照可疑程度的排序结果选择要调查的账户数,并可根据给出的具体字段的可疑程度,能有效减缓调查的难度和工作负担。

由于客户资料的保密性,此处就省略了对具体账户的所属的可疑类型进行分析的过程。建模过程可以将全部记录中的字段影响异常值程度以散点图的形式显示出来,月交易金额与月存取金额的异常值散点图,如图3所示。

图3 资金存取额与交易额的散点图

要查看显示所有记录(不仅仅是异常记录)的完整散点图,要取消选择已生成模型中“设置”选项卡上的放弃记录选项。使用图表更方便地查看要标记的记录,以备进一步调查。

4 结束语

通过挖掘的结果显示,案例的异常点挖掘通过设置人工数据进行检验,人工数据在两阶段聚类过程中分别在不同的阶段被识别出来,在异常建模中也被显示出来,基于两阶段聚类算法的异常识别建模过程能够根据客户交易数据和客户基本信息有效挖掘出客户交易行为的异常记录,但是限于数据源以及一些客观条件制约,使得异常点的挖掘仅仅专注于聚类分析后汇总的可疑名单和各个分组客户交易行为异常程度,而没有对客户在股票买卖、资本运作(转账)等方面做深入细致的分析,在今后的研究中将进一步地对这方面进行深入具体的分析。

[1]汤俊.基于客户行为模式识别的反洗钱数据监测与分析体系[J].中南财经政法大学学报,2005,(4).

[2]毛国君,段立娟,王实等.数据挖掘原理与算法(第二版.)[M].北京:清华大学出版社,2007.

[3]陈光宇.数据挖掘在客户流失分析中的应用—聚类与分类算法的研究及应用[D].江苏科技大学,2007.

[4]张业嘉诚.划分聚类与基于密度聚类算法的改进方法研究[D].大连理工大学,2007.

[5]李文超,周勇,夏士雄.一种新的基于层次和K-means方法的聚类算法[C].第26届中国控制会议论文集,2007.

[6]谢邦昌.数据挖掘Clementine应用实务[M].北京:机械工业出版社,2008.

猜你喜欢

字段聚类建模
图书馆中文图书编目外包数据质量控制分析
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
基于K-means聚类的车-地无线通信场强研究
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
基于高斯混合聚类的阵列干涉SAR三维成像
基于Spark平台的K-means聚类算法改进及并行化实现
基于改进的遗传算法的模糊聚类算法
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述