基于logistic回归的信用反欺诈预测模型
2020-02-14吴骏一
吴骏一
摘要:随着时代的飞速发展,互联网离我们的生活越来越近。互联网可以说是一把双刃剑,即带来了更加便捷的网络金融服务;又带来了如信用卡盗刷,电信诈骗,网络钓鱼等危害。文章基于对信用贷款业务的理解,利用银行业务数据,结合机器学习模型实现了一种基于逻辑回归算法的信用反欺诈预测模型。该模型能有效减少信用卡盗刷事件的发生,减少银行的损失;同时,该模型还能提高银行的工作效率,具有较好的工程应用价值。
Abstract: With the rapid development of the times, the Internet is getting closer to our lives. The Internet can be said to be a double-edged sword, which brings more convenient online financial services and also brings harm such as credit card theft, telecommunications fraud, phishing, and so on. Based on the understanding of credit loan business, this paper uses bank business data and machine learning models to implement a credit anti-fraud prediction model based on logistic regression algorithm. This model can effectively reduce the occurrence of credit card fraud and reduce bank losses. At the same time, the model can also improve the bank's work efficiency and has good engineering application value.
关键词:信用卡;反欺诈;logistic
Key words: credit card;anti-fraud;logistic
中图分类号:F831 文獻标识码:A 文章编号:1006-4311(2020)01-0206-06
1 研究背景
层出不穷的网络欺诈,如银行理财产品漏洞被利用,虚假借款诈骗等正深深地困扰着人们。与此同时这些网络金融欺诈的手段正向复杂化,多样化方向发展。金融行业急需例如本文所提到的模型来解决上述问题。对于新时代的金融机构来说,创造出完整的风险预测与控制体系是极为必要的,因为这样能有效避免欺诈等违法行为的发生。尤其在消费金融业务方面,毫不夸张地说,风险控制能力的高低直接决定了业务盈利能力的强弱。欺诈案件的发生,不仅给金融企业带来了巨大的经济损失,还给社会带来了许多不稳定因素,挑战着人们经济与道德的底线。
“反欺诈系统永远都不是静态的,有些人一直试图寻找它的漏洞,并利用它”。[1]运用传统方法很难去定义新型诈骗手段。在此情况下,我们必须采取相对的对策。当今机器学习发展迅速,在此大背景下,人们很快就将人工智能(AI)技术融入金融市场之中。利用这种技术,不仅可以使得银行、证券交易等金融企业的运营和维护成本有所降低,而且信用评估系统分析的准确率也大大提高。AI技术投入使用一段时间后,各类网络欺诈行为都得到有效控制,各类企业和客户的利益都得到了有效保护。
目前运用机器学习技术虽然能够有效控制网络欺诈行为,但是这种新投入市场使用的技术仍然存在一定的缺陷——在各类金融企业的数据库中,尽管有足够量的数据以供测试训练和交互验证,但是其内置的反欺诈模型均为静态模式,只能对类似于以往已发生的欺诈行为进行检测,而面对层出不穷的新型诈骗手段,其检验结果不孚众望。过去的反欺诈模型,基本都是用传统的单一化的方式处理问题,并且易受到各类条件的限制,在使用中常捉襟见肘,疲于应付如今防不胜防的欺诈手段。由此可见,一种新的反欺诈模型的建立和运用是必然的,也是极为重要的。
2 数据预处理
我们选取了来自于kaggle上符合模型需要的数据包,数据包里的数据由欧洲部分信用卡持卡人在2013年9月某两天内进行卡片交易的数据组成。数据显示,在284807笔交易中,有近500次信用卡被盗刷记录,占所有交易量的0.17%。但是,此次选取的数据包数据波动较大,并且只包含了作为PCA(主成分分析)转换结果的数字输入变量。在法律层面,为保护信用卡持有者的隐私,相关的数据功能和持卡人背景信息不予提供。通过使用PCA获得主要组件,特征V1,V2,……V28,没有用PCA转换的唯一特征是时间和交易金额。特征“时间”包含数据集中每个事务和第一个事务之间经过的秒数。特征“金额”即为交易金额,这是可用于实例依赖的成本认知学习的特征。特征“类”即所谓的响应变量,如若发生盗刷事件,则取值1,否则为0。
在基本信息方面,其缺失值情况如图1的缺失值矩阵图所示,每一维度没有缺失值,不需要进行补值操作。
就统计信息而言,V1-V28个维度的均值mean为0.0000,标准差std大约为1,分布较为均匀;amout的均值为88.3496,标准差std为250.1201,分布不均匀,且数值较小的次数多,偶尔数值偏大,在此情形下我们得出了要对这个维度进行特征缩放,使得和其他维度的尺度相同结论,后续将对此进行处理。
观察了欺诈和非欺诈两类消费在数据集中的分布情况,如图2所示,正常消费为0,欺诈消费为1。在284807笔交易中,为0的有284315笔,为1的有492笔,且信用卡被盗刷交易占总体比例为0.17%,可由图2看出。
通过观察和分析以上数据,可以知道信用卡交易正常和被盗刷两者数量不平衡,样本不平衡影响分类器的学习,稍后我们将会使用过采样的方法解决样本不平衡的问题。
除以上操作外,为使数据更直观,还需进行单位转换的操作,将变量time原来的单位由秒变为小时。
为了便于算法和模型使用,我们采取了特种工程,从最初数据中提取相应特征,并进行适当选择以及不同维度的变化,优化模型的演示效果。基于此,本文对所收集的数据包进行了特征工程探究。
将数据集分成欺诈Fraud和正常Normal两部分,观察两种情况下各个维度之间的相关性,我们可以轻松看出其颜色有深有浅,且浅色较接近0.0,而深色接近1或-1。深入观察发现订单正常的颜色较浅,而欺诈的颜色较深,且欺诈与正常之间差异很大。
从图3可以看出,部分变量之间的相关性更突出这一现象在信用卡被盗刷的事件中是较为明显的。其中变量V1、V2、V3、V4、V5、V6、V7、V9、V10、V11、V12、V14、V16、V17和V18以及V19之间的变化在信用卡被盗刷的样本中呈现着一定的规律。
在欺诈与正常消费金额笔数方面,存在着明显差异,欺诈交易的金额全部在5000以内,而正常的金额则分布广泛,如图4所示。
由图5可知,信用卡正常消费的金额呈现出大且集中的特点,而信用卡被盗刷的涉案金额则呈现出小且分散的特点,很明显,为了更大程度躲避信用卡持有者对消费交易产生怀疑而采取有效的法律措施,犯罪分子更倾向于采用低额盗刷手段。
将欺诈与正常的订单数量同消费时间绘制了柱状图,通过观察图5、图6不难发现有关欺诈与正常在消费时间上的差异,欺诈交易发生最多的时间是11am;而正常交易发生最多的是21pm,且在9am到22pm较集中。欺诈与正常在消费时间上的差异图。
由图可知,得到了每天早上9点到晚上11点之间是信用卡消费的高频时间段的結论。
就不同时间消费金额上的差异,欺诈消费的金额大多在500以内,且分布较散;正常消费的金额集中在5000以内,较为集中。如图7所示。
通过观察V1-V28每一维度上正常交易和欺诈交易的数据分布情况,发现维度13,15,20,22,23,25分布较为相像,例举维度13,15的图可知。
而维度1,2,3,4,5,6,7,8,9,10,11,12,14,16,
17,18,19,21,24,26,27,28等分布较不一样,例如维度3,维度4所示。
综上所述,分布相似的说明无法区分正常和欺诈交易,可以删除。与此同时,信用卡非正常交易和正常交易之间的变量分布情况有所不同,基于此特点,我们选择非同种信用卡状态下,动态变化明显的变量来分析。因此剔除变量V8、V13、V15、V20、V21、V22、V23、V24、V25、V26、V27以及V28变量。这也与我们最初用相关性图谱观察得出的结论一致。除此之外还要剔除变量Time,保留离散程度更小的Hour变量。
有关特征缩放,之所以要特征缩放,是因为特征Hour和Amount的规格和其他特征相差较大。为解决之一问题,通过采用均值/标准差的方法进行了表转化。
为此,我们可以选择随机森林的方法来解决。随机森林是一种分类器,它包含多个决策树,可以对异种特征的重要行排序进行计算输出,且可以用于特征探索。正如图8所示,把18个维度作为输入,输出了18个重要性。
由图可知,v12最重要,amout hour的重要性排名比较靠后,通过前面的工作可以知道amout和hour在正常消费和欺诈消费上存在着很大的差异,是对于分类比较重要的变量,之前更有效,所以我们并没有删除有效。而amout hour的重要性比较小,后面的也小,没有保留无用的,合理的。
3 模型训练
在建模的过程中,正常和违约两种类别的数量差别较大的特点是显而易见的,其次该特点会对模型学习造成干扰。例如,现在我们收集了某银行的1000个贷款样本信息,在这些贷款信息中,有999个样本属于正常贷款,只有1个违约贷款。对于学习器来说,只需要将所有的贷款样本信息都归类为正常样本,那么结果准确率将达到99.9%。然而,这样的决策结果对我们的风险控制于事无补。基于上述问题,我们不得不采取一定措施来有效解决样本不均衡的问题。
通常情况下处理数据不均衡这类的方法有两种:
第一种方式为过采样法(oversampling),其主要内容为增加正样本数量,进而使得正、负样本数目接近,然后再进行学习。
另一种方式为欠采样法(undersampling),其主要内容为去除负样本数量,进而使得正、负样本数目接近,然后再进行学习。
基于我们得到的欺诈数据非常少这一条件,我们选择采用过采样的方法来解决数据不均衡的问题。smote处理样本不均衡时,通常按照如下步骤:①就少数类中每一个样本x而言,通过采取欧氏距离为标准计算它到少数类样本集Smin中所有样本之间的距离,从而能够得到其k近邻。②为了确定采样倍率N,需根据样本不平衡比例来设置一个采样比例。对于一个少数类样x,从其k近邻中随机选择若干个样本,并假设选择的近邻为xn。③对于每一个随机选出的近邻xn,按照特定的公式分别与原样本构建新的样本。经smote处理后,产生的结果如表1所示。即在处理之后,正负样本各占50%,达到均衡状态。
Logistic Regression逻辑回归主要用于分类问题,常用来预测概率,虽然其与多重线性回归在实际上有诸多相似之处,但它们最大的区别就在于他们的因变量不同。我们尝试用logistic regression模型解决本文的问题。[2]
先利用全体数据集训练了一个模型,其准确率为99.8%,主因是我们基于相同数据集进行了模型训练和测算,并由此导致模型产生过拟合问题。为了得到更优的模型,我们采用cross-validation和grid search的方式。
通常情况下,可以将数据集划分为训练集和测试集的方法有三种:①留出法(hold-out),②交叉验证法(cross-validation),③自助法(bootstrapping)。而本次项目采用的是交叉验证法划分数据集,将数据划分为3部分:训练集(training set)、验证集(validation set)和测试集(test set)。让模型在训练集进行学习,在验证集上进行参数调优,最后使用测试集数据评估模型的性能,并采用交叉验证的方法进行数据集的划分。
我们采用网格搜索调优参数(grid search)的方式进行模型调优。首先先进行参数候选集合构建,继而由网格搜索穷举各类参数组合,并且由预设的评分机制选择出最优参数。结合cross-validation和grid search,具体操作我们采用scikit learn模块model_selection中的GridSearchCV。
在进行调参的过程中,首先确定模型以及参数组合,采用5折交叉验证的方法,模型评估的指标选择f1-score,调节了penalty和 C两个参数,得到的最终调整参数的结果为{'penalty': 'l2', 'C': 100} ,该参数下预测的结果为0.95750。具体结果如图9所示。
接下来探究不同阈值对模型准确率的影响阈值是指在进行类别划分时,划分的分位点。为了探究不同阈值对结果的影响,分别设置阈值为0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,
计算出precision和recall矩阵,并画出了同阈值下的precison-recall矩阵,如图10。
由图10可知,将阈值0.1至0.9分为9类,并用9种不同颜色的折现表示,最佳的指标是precision和recall都为1,很可惜没有这种完美的情况,从AUC角度考虑个人认为可以选择阈值为0.6,因为此时的情况较为优良,但不同银行出于不同的考虑,会有不同的选择。
precision和recall是一组矛盾的变量。从上面混淆矩阵和PRC曲线可以看到,阈值越小,recall值越大,模型能找出信用卡被盗刷的数量也就更多,但换来的代价是误判的数量也较大。随着阈值的提高,recall值逐渐降低,precision值也逐渐提高,误判的数量也随之减少。通过调整模型阈值,控制模型反信用卡欺詐的力度,若想找出更多的信用卡被盗刷就设置较小的阈值,相反,则设置较大的阈值。
实际业务中,阈值的选择取决于公司业务边际利润和边际成本的比较;当模型阈值设置较小的值,确实能找出更多的信用卡被盗刷的持卡人,但随着误判数量增加,不仅加大了贷后团队的工作量,也会降低误判为信用卡被盗刷客户的消费体验,从而导致客户满意度下降,如果某个模型阈值能让业务的边际利润和边际成本达到平衡时,则该模型的阈值为最优值。当然也有例外的情况,发生金融危机的发生,往往伴随着贷款违约或信用卡被盗刷的几率会增大,而金融机构会更愿意不惜一切代价守住风险的底线。
4 总结
通过一系列的研究,我们最终得到了该基于logistic回归的信用反欺诈预测模型。该信用反欺诈预测模型的实际应用,体现了人工智能技术在金融领域的发展。其优点还是较为显著的,首先,此模型可直观展现消费者的交易习惯,例如发生交易的时间、金额等;其次,该模型能较为准确地识别出欺诈交易,从而降低欺诈案件发生的概率,金融公司也由此成为最大受益方,不仅能有效降低措手不及的网络欺诈带来的巨大风险,高效地为企业客户提供优质的网络金融服务,而且企业的运营和维护成本也大幅削减,企业核心竞争力明显提高,进而为金融行业的发展注入了长足的动力。但也存在着些许不足,我们进行建模的数据是经过脱敏后的数据,对数据的不了解导致我们对数据维度的挖掘不够充分,并且缺乏模型间的比较,后续可进行相关研究。
参考文献:
[1]王威巍.人工智能在金融反欺诈领域的应用[J].中国科技信息,2018(20):72-74.
[2]链接https://www.cnblogs.com/weiququ/p/8085964.html.
[3]仵伟强,后其林.基于机器学习模型的消费金融反欺诈模型与方法[J].现代管理科学,2018(10):51-54.
[4]王文敬.基于SMOTE过抽样法的个人信用评分模型研究[D].上海师范大学,2019.