文 / 中国人民银行保山市分行 蒋贵斌
涉案银行账户识别是账户管理的重要方面,智能快速地区分涉案账户和非涉案账户是账户管理亟需解决的问题。当前,人工智能算法蓬勃发展,许多智能算法可便捷高效地实现银行账户分类,有效区分涉案账户和非涉案账户,区分涉案账户类型,实现对涉案账户的精准识别,最终实现对违法犯罪的精准打击。中国人民银行保山市分行课题组依托现有数据资源,使用聚类智能算法,分析账户流水,提取账户数据特征,尝试开展智能化账户数据分类识别。
1.充分利用现有数据资源
账户数据作为个人隐私数据,受到国家法律法规的严格保护。账户数据的采集是课题研究的基础和关键。根据工作安排,基层人行支付结算部门掌握了本辖区的涉案账户数据,经过多方协商,课题组对本机构掌握的涉案账户数据进行了脱密脱敏处理,不采集涉案账户的姓名、交易对手、摘要等信息,仅对账户流水进行整理和有效信息提取,并严格保证提取数据仅用于课题研究使用。为保证课题研究质量,课题组除采集涉案账户数据,还对正常账户流水数据进行数据整理和提取分析,进行数据脱密脱敏处理,并取得相关人员同意授权。
2.调用聚类智能算法模块
智能算法分为有监督的智能算法和无监督的智能算法,有监督的智能算法需要给定参考结果,无监督的智能算法对数据进行自动分类聚合。伴随着新型电信网络诈骗和洗钱犯罪的发展,犯罪分子有意避开传统账户特征算法识别,比如:有意避免夜间交易、大额交易等,如使用有监督的智能算法模型,需要反复调整给定结果。本课题使用无监督的聚类算法,能够在不给定参考结果的情况下,实现对涉案账户的动态聚类分析,能够更加智能的追踪账户行为。本课题使用Anaconda平台下的Spyder工具进行编写,通过使用Python语言快捷方便地调用数据聚类分析库,通过调整参数,实现对数据的聚类分析,如,KMeans、DBSCAN等模块,调用Metrics模块对聚类分析结果进行评估。
经典的聚类算法包括KMeans和DBSCAN,两个算法各有优缺点,适用于不同的聚类场景,需要根据实际情况进行选择和优化调整。
1.KMeans算法
KMeans顾名思义就是要将数据分为K个簇,需要我们根据自己业务知识和专家意见,给定聚成多少个簇,如,指定K=2,即将数据分为2簇或2类。Kmeans算法会随机初始K个质心,即初始中心点,然后计算每个数据与初始质心之间的距离,算法模型会将样本数据与距离最短的质心归为一类,完成第一次聚类以后,算法模型再次选择每一个簇内的中心点作为新的质心,使用新的质心再次计算质心与所有样本数据的距离,经过再次迭代,使得样本数据重新划分至不同的簇,以保证样本数据与所属簇质心的距离最短。经过多次迭代,即可实现对数据自动科学划分。值得注意的是,计算数据与质心的距离通常采用欧式距离,一般不采用曼哈顿距离。Kmeans算法适用于数据特征明显、簇间距离较大、能够较好区分数据的场景,对数据较为分散、数据特征不明显的场景,KMeans聚类效果不佳。
2.DBSCAN算法
DBSCAN算法是基于密度的带噪声的空间聚类应用算法,它是将簇定义为密度相连的点的最大集合,能够将具有足够密度的区域划分为簇,并在噪声的空间数据集中发现任意形状的聚类。DBSCAN算法需要指定领域半径和领域内样本数据量,首先随机选择其中一个数据,计算其半径范围内涵盖的样本数量,如果样本数量达到设定的数量,则再次将其辐射范围内的样本数据作为中心,以指定领域半径作为半径,再次查找新中心辐射范围内样本数量是否达到指定数量,如果达到,则以此类推进行扩张,如达不到,则停止扩张。DBSCAN算法可实现非规则数据的聚类,只要在设定半径距离内样本数量达到指定数量,即可进行向外扩张。由于个别数据在其指定辐射范围内无法达到指定样本数量,就不进行向外扩展,无法与其他数据进行聚类,被称之为离群点。DBSCAN算法虽然能够较好对非规则数据进行聚类,但聚类时间较长,对于大量数据进行聚类分析,需要的计算资源较高,花费的计算时间也比较长。
账户流水特征的提取对开展涉案账户识别尤为重要,合理的数据特征能够使算法有效区分涉案账户与非涉案账户,能够进一步对涉案账户进行有效聚类,实现精准分类管理。课题组选取月最大交易量占年交易量占比、小于1元交易量占年交易量占比、快进快出交易量占年交易量占比作为算法识别特征。特征量的统计和计算使用Excel公式快速开展,有效提升统计效率。
月最大交易量占年交易量占比:涉案账户通常会长期处于休眠状态或零星交易状态,会在某个时间段突然出现爆发式交易增长,通过统计年交易量和月最大交易量,计算月最大交易量与年交易量的占比,能够较好地反映出涉案账户交易突然增长的特征。
小于1元交易量占年交易量占比:涉案账户通常会采用整存零取或零存整取的方式增加账户排查难度,逃避监管。根据当前我国居民消费习惯和水平,一般情况下,正常账户小于1元交易通常会很少。通过统计小于1元交易量占年交易量占比,能够较好区分涉案账户数据和非涉案账户数据。
快进快出交易量占年交易量占比:大多数涉案账户会被当作过渡账户使用,即,资金仅仅通过该账户过渡,实现资金快进快出。课题组通过对账户交易流水进行查找分析,计算流水中每笔资金与上一笔资金的和,如果和为0,判定该笔资金为过渡资金,反之则为非过渡资金。通过统计过渡资金交易数量,计算过渡资金交易量在全年交易量中的占比,将该占比作为快进快出交易量占年交易量占比,从而有效区分涉案账户与非涉案账户。
课题组还对最大重复交易量占年交易量占比、大于1000元的交易量占年交易量占比进行统计分析,但未能有效区分涉案账户与非涉案账户,两项指标未纳入聚类算法特征使用(见表1)。
表1 案例特征数据
1.KMeans算法实现
(1)模块及数据导入。需要使用的模块包括:Pandas、KMeans、Metrics,Pandas用于数据的导入,KMeans用于对数据进行智能聚类,Metrics用于对聚类效果进行评估。从代码文件所在的根目录下导入数据文件hz.txt,传入三个变量yzd、xy1y、kjkc,其中yzd代表最大月交易量占比,xy1y代表小于1元的交易量占比,kjkc代表快进快出交易量占比。
(2)使用轮廓系数对分簇数量进行评估。该阶段目的是查找最佳分簇数量,即查找K值对应的轮廓系数,具体查找K值为2~19的轮廓系数。轮廓系数用于评估聚类效果,即簇内样本与簇外样本之间的距离应尽可能大,簇内样本间的距离应尽可能小。轮廓系数在-1至1之间,越靠近-1表示错误分类情况越严重,越接近0表示样本重叠程度越高,越接近1表示正确分类的效果越好。
轮廓系数评估见表2。从上表中可以看出,K值为2或3时轮廓系数最佳,即数据分为2~3个簇最优。通常情况下,轮廓系数大于0.6的聚类算法即可在实际工作中应用。
表2 轮廓系统评估一览表
(3)按照最佳K值进行聚类,并添加标识列。按照轮廓系数评估选出的最佳K值进行训练,即2个簇或3个簇,本次聚类采用3个簇,并将训练结果添加到数据系列中。
聚类结果见表3。
表3 KMeans算法模型聚类结果表
(4)结果验证。使用Metrics模块对算法轮廓系数进行评估,轮廓系数输出为0.6268421139801665,大于0.6,可以参考。样本案例中0、1、2为正常用户数据,识别为一个簇,该簇还囊括了22、19、16等其他涉案账户,其余样本数据识别为另外2个簇。可以看出,KMeans算法能够较好地将正常用户数据识别为一个簇,聚类结果可以为涉案账户识别提供参考。在实际工作中,如果新加入的样本数据没有被划分为0簇,应当对新加入账户进行分析排查,很有可能属于潜在涉案账户。
2.DBSCAN算法实现
(1)模块及数据导入。需要使用的模块包括:Pandas、DBSCAN、Metrics,Pandas用于数据的导入,DBSCAN用于对数据进行智能聚类,Metrics用于对聚类效果进行评估。从代码文件所在的根目录下导入数据文件hz.txt,传入三个变量yzd、xy1y、kjkc,其中yzd代表最大月交易量占比,xy1y代表小于1元的交易量占比,kjkc代表快进快出交易量占比。
(2)设置最佳参数进行聚类,并添加聚类标识列。DBSCAN需要设置随机中心辐射半径以及辐射半径内最小样本数量。如果中心点辐射半径内,数据样本数量达到最小数量,那么半径辐射范围内的样本数据再次以自己为中心,根据设定的半径和半径辐射内最小样本数量继续向外扩展查找。通过设置不同的半径和最小样本数量,查找最佳轮廓系数。其中辐射半径设置为8,最小样本数量设置为3,轮廓系数为0.5902990068510852,已非常接近0.6,可以用于数据样本聚类。最后,通过设置标签列cluster_db,将聚类结果添加到系列当中。
聚类结果见表4。
表4 DBSCAN算法模型聚类结果表
(3)结果验证。从结果输出表中不难看出,DBSCAN智能算法成功将样本数据分为3类,分别是0、1、2,标识为-1的数据样本为离群点数据,即离群点数据在半径为8的范围内没有涵盖3个以上样本数据,没有与其他样本数据聚为一类。在标识为0这一类数据当中,涵盖了0、1、2三个正常账户数据,同时,还将7、10、16等其他样本数据分为这一类,表明该智能算法能够初步将正常账户划为一类,其他与正常账户相似或距离较近的涉案账户也归为此类,其余的涉案账户成功归为其他类,并进一步作出1、2两个聚类区分。
3.KMeans与DBSCAN的对比分析
KMeans与DBSCAN两个智能算法在没有参考的情况下,也就是无监督的状态下,均成功实现对样本数据的聚类分析。两个算法分别将样本数据分为0、1、2三个簇,其中DBSCAN除了聚为3个簇,还存在3个离群点数据。从聚类结果看,KMeans算法0、1、2三个簇涵盖的样本数据和DBSCAN算法0、1、2三个簇涵盖的样本数据基本一致,两个算法的轮廓系数均在0.6左右,且能成功将正常账户数据和涉案账户数据进行初步甄别和区分,能够在实际工作中发挥一定的提前预判和预警作用。
一是特征变量选取难以达到理想状态。此次聚类算法实践应用提取样本数据中的月最大交易量占比、小于1元交易量占比、快进快出交易量占比3个特征用于聚类分析,聚类效果基本达到预期。课题组还尝试加入最大重复交易量占比和大于1000元交易量占比,加入后反而降低了聚类的轮廓系数。随着管理部门加大对银行账户的管控,涉案账户呈现多元化特征,违法人员有意通过多种方式规避监管,导致涉案账户特征变量选取困难,使用传统的涉案账户特征开展智能分析效果不佳。
二是相较于监督式智能分析聚类算法效果不够理想。有监督式的算法模型能够为智能分析提供判断参考,有效区分涉案账户和非涉案账户,可以较好在实际工作中应用。聚类算法属无监督式学习分析算法,加之涉案账户特征不断变化翻新,导致聚类算法将部分涉案账户与正常账户划为一个簇,算法模型分析效果不够理想。
三是单一的算法模型在支持实际应用方面力量单薄。KMeans和DBSCAN两个聚类算法轮廓系数评估仅为0.6左右,可以作为涉案账户和非涉案账户区分的参考,实际应用中,还需要对聚类算法模型开展大量训练。仅仅使用单一的算法模型开展涉案账户分析,显得力量单薄,准确锁定涉案账户尚存在一定困难。
一是采用多种方式选取特征变量。密切跟踪涉案账户动向和变化,分析提取涉案账户最新最明显的特征。充分利用分析研究部门成果,结合工作实际合理选择涉案账户特征。使用主成分分析方法,在繁杂的涉案账户特征中查出主成分,科学高效开展涉案账户聚类分析。
二是加大聚类分析学习样本数据量。通过多种方式收集涉案账户数据和非涉案账户数据,开展大规模数据下的聚类算法模型训练,提升聚类算法模型分析的准确性,降低聚类算法模型错误判断比率。
三是采用多种算法模型,形成涉案账户识别合力。除了采用KMeans和DBSCAN算法模型进行分析,还可以同步开展逻辑回归、KNN、决策树等多种算法模型分析,在KMeans和DBSCAN对其他算法模型提供支持的同时,也使用其他算法模型为KMeans和DBSCAN提供参考,综合提高涉案账户识别成功率。
(此文刊发于《金融电子化》2024年10月下半月刊)
媛子dayup 2024-12-18
正肽生化 2024-12-18