三、以数据挖掘驱动的异常查询实时监测模型
如图1所示,根据数据挖掘算法,异常查询实时监测模型包含6个步骤。
图1 异常查询实时监测模型
(1)业务理解
通过业务调研、违规查询样本分析及数据探索后发现,大量违规行为伴随查询量突增。典型案例如下:2015年3月某银行违规查询了3.2万份个人信用报告。从该用户的历史查询轨迹来看,原本平稳的查询频率在事发月份出现了异常突增,足以引起高度关注。类似的情况在多个案例中反复出现。因此,本次数据挖掘的目标定位于对用户月查询量进行预测,通过比对预测查询量与实际查询量的差异,判别用户的异常风险。
(2)质量检查
检查查询记录的各字段值是否符合业务逻辑,并清理脏数据,保证后续的数据分析得出可靠的结论。
(3)数据准备
本次数据挖掘的样本选用个人征信系统最新36个月全部查询记录,样本数为9.0亿条。经过数据预处理后,按月统计每个用户的查询总量,并形成查询量矩阵R。
查询量矩阵R共有m个月度观察点,n个查询用户,其中,aij (1 ≤i ≤ n,1 ≤ j ≤ m)表示第i个用户在第j个月份的查询量。
(4)数据分析
月查询量矩阵是一个稀疏矩阵,矩阵内存在大量为0的值,表明只有少量用户连续每个月都有查询,而大量用户的查询是时断时续的,因此有必要对查询连续性进行进一步的分析。
①查询休眠时长分析
分析用户最后一次查询距离当前日期的天数,定义为当前休眠天数T,统计结果显示:average(T)=197天,min(T)=0天,max(T)= 973天。
结合表1与图2可以看出,50%和65%为突变点,T≤84天的用户达到50%,T≤369天的用户达65%。也就是说,最近3个月内,50%的用户至少发生过一次查询;最近12个月内,65%的用户至少发生过一次查询。
表1 用户睡眠天数分位数
图2 用户睡眠天数频度分析
②休眠重启行为分析
用户休眠后又重新查询的行为特征是什么呢?以月为单位来计量,用户在自然月内有查询行为即为当月活跃,否则为休眠。滚动一个月后继续观察用户的活跃状态。由此分析正常用户的休眠、重启特征。
以2015年9月份的数据为例,当前活跃用户6.7万人,占比42%。在2015年10月份,上个月6.7万活跃用户中,93%的用户继续活跃,剩余7%变成睡眠1个月用户。2015年9月份睡眠1个月用户0.4万人,占比3%。在2015年10月份,这0.4万用户中,42%的用户又有了查询,再次活跃起来,剩余58%的用户由睡眠1个月用户变成睡眠2个月用户,具体见表2。
表2 用户活跃分析 单位:万人
从表2可以看出,随着睡眠时间增长,重启查询的可能性越来越低。为了验证结果的稳定性,依次对每个月的数据进行滚动分析,见表3和图3。
表3 活跃率滚动分析
图3 当前用户一个月后重启查询的平均占比
由图3可看出,3个月、6个月也是与查询行为高度相关的特征值。睡眠3个月的用户再次活跃的比例≤11%,睡眠6个月的用户再次活跃的比例≤6%并趋于平稳。
(5)模型建立
本次查询量预测目标需对每一个用户构建预测模型。
①根据用户特征分组
查询矩阵中存在大量缺失值,建模前需对缺失值进行补充。为能用最恰当的值补充,需对用户按照查询特征进行分组。
根据上文用户查询特征数据分析结果,将用户活跃状态分为六大类:分别是活跃无断点、活跃有断点、新开用户、次新用户、当前睡眠户和历史睡眠户,具体见表4。
表4 用户活跃状态分类
②用户月查询量缺失值补充
以上六大类特征用户,其查询量缺失值补充规则见表5。
表5 补充缺失值的规则
③根据波动特征构建模型
原则上,用户的查询需求受其所属机构查询需求的影响,并保持相同趋势。用户所属机构分为十二大类。分别为:人民银行、全国性商业银行、城市商业银行、农村信用合作社、城市信用合作社、村镇银行、政策性银行、公积金管理中心、财务公司、汽车金融公司、外资银行、小额贷款公司。
十二大类的机构呈现出4种不同的波动趋势。分别为平稳型、增长型、小幅跳跃型和周期跳跃型。因此,对用户的建模算法也遵循以上4类,其对应的预测算法见表6。
表6 查询量波动特征及对应预测算法
续表
④预测用户月查询量
对用户用修正过的查询数据,根据用户所属组别的选择预测模型,预测其月度查询峰值。
a.平稳型
此类机构查询量每月基本稳定,使用简单平均算法来预测下个月的查询量,其计算式为:
其中,Xi (i = 0,…,23)表示用户最近24个月的实际查询量,表示下一个月的月度预测值,N为调整系数,Std为24个月查询量的标准差。
b.增长型
此类机构每月增长趋势明显,采用月度差分加权移动平均算法,其计算式为:
其中,Xi (i = 0,…,23)表示用户最近24个月实际查询量;表示下一个月的月度预测值;△i (i = 0,…,22)表示每个月与上个月查询量的差值;N为调整系数;Std为24个月查询量的标准差;R表示指数权重,取值范围为(0,1)。
指数权重R的取值规则为:
其中,m为增长型用户总数;Xi24 表示第i个用户预测值;Xi j 表示第i个用户第j个月实际查询值;r = 0.01,0.02,0.03,…,0.99,每次共计算99次;R的值是min(W)对应的r。
c.小幅跳跃型
此类机构每月的查询量有一定的波动,但变化幅度很小,采用指数加权移动平均算法,其计算式为:
其中,Xi (i = 0,…,23)表示用户最近24个月实际查询量;表示下一个月的月度预测值;N为调整系数;Std为24个月查询量的标准差;R表示指数权重,取值范围为(0,1)。
指数权重R的取值规则为:
其中,m为小幅跳跃型用户总数;表示第i个用户预测值;Xi j 表示第i个用户第j个月的实际查询值;r =0.01,0.02,0.03,…,0.99,每次共计算99次;R的值是min(W)所对应的r。
d.周期跳跃型
此类机构查询量波动有很强的周期性特征,采用年度差分方法,其计算式为:
其中,Xi (i = 0,…,35)表示用户最近36个月实际查询量,表示下一个月的月度预测值,N为调整系数,Std为36个月实际查询量的标准差。
⑤预测用户日查询峰值
月查询量预测即模型的结果,但为了满足实时监测的需要,需要将月度预测值推算至日预测峰值,具体换算式为:
其中,Xi (i = 0,…,23)表示用户最近24个月的实际查询量,表示下一个月的月度预测值,di 为每个月的日查询峰值,表示下一个月预测的日查询峰值。
(6)模型验证
利用相对误差及泰勒不等系数,对4种模型进行验证,具体见表7。结果表明,该模型应用于个人查询量预测是可行的。如平稳型模型相对误差的最大值、次大值和最小值分别为23.71%、23.47%、0.65%,平均精度为84.45%,泰勒不等系数为0.085,模型效果很好。
表7 模型验证结果
泰勒不等系数计算式为:
其中,n为预测期数,为预测值,Xi 为实际值。
泰勒不等系数的值在0和1之间,当泰勒不等系数等于0时,是最优拟合。
平均相对误差计算式为:
其中,n为预测期数,为预测值,Xi 为实际值。