


《Python,金融数据挖掘,》,高等教育出版,,,,,,,,,,第十五章,综合案例,1,:信用卡虚假交易识别,【知识框架图】,,基于数据挖掘算法的虚假交易鉴别业务流程,,,,,,,目录,Contents,第一节,案例背景,第二节,算法评价指标,第三节,数据概况,,第四节,操作流程,本章,学习目标,1.,信用卡虚假交易识别,,,01,案例背景,信用卡虚假交易是指通过不存在的、伪造变更的实体商品或者服务交易,来套取信用卡内资金的违法行为,进行,虚假交易的持卡人往往缺乏正常健康的还款能力,因此会给信用卡发行机构的资金安全带来威胁,同时,,虚假交易套取的资金往往流向了限制或者禁止资金进入的领域,助长了违法犯罪活动的发生,因此,,对信用卡的虚假交易进行识别,是信用卡发行机构和各国政府执法部门密切关注的一项日常任务信用卡虚假交易识别,先后经历了人工甄别、规则判断和大数据人工智能识别等三个阶段目前,虚假交易识别已进入大数据人工智能识别阶段该阶段借助信用卡交易大数据记录和飞速发展的数据挖掘算法,能在第一时间发现可疑的虚假交易,从而避免损失、遏制违法犯罪活动,基于数据挖掘算法的虚假交易鉴别业务流程,,第一,步:是,对原始业务记录数据进行清洗,得到满足算法输入要求的训练集数据。
因为银行交易记录一般是非常规范和完善的,因此这一步的工作往往集中对数据项进行合理地数值化账户的基本信息和每一笔交易信息,是算法训练集的属性;而对该笔交易进行人工分析或者事后反馈的结果,则是分类标签,第二步:是,选用某种数据挖掘算法进行模型训练,第三步:是,算法参数调优,第四,步:训练,好的算法模型可以用来对第四步的新交易信息进行分类预测,第五步:算法,的输出即为预测的分类结果,可以及时地判定当前新交易是否有虚假交易的可能,从而采取相应的措施02,算法评价,指标,,要评价一个数据挖掘算法效果的好坏,必须有可以量化的评价指标,假设有一个数据集,一共有,100,个样本,其中包含,60,个逾期还款(阳性)样本,,40,个正常还款(阴性)样本分类算法的目标是能够对正常和逾期还款的样本进行正确分类假设某个分类算法将,100,个样本分成两类,每一类均为,50,个样本,其中分类到阳性逾期类别的样本中只有,40,个是真实的阳性逾期样本,另外,10,个样本属于阴性正常类别,即分类算法出现了错误分类,一方面将,10,个阴性样本误分为阳性,另一方面将,20,个阳性样本误分为阴性假设分类算法的预测类别分为阳性,Positive,和阴性,Negative,两类,预测结果的正确性用正正确(,True,)和错误,(False),表示,则预测标签和数据真实标签之间的关系有以下四种:,TP,(正确预测的阳性逾期结果,即,TruePositive,)、,TN,(正确预测的阴性正常结果,即,TrueNegative,)、,FP,(错误预测的阳性逾期结果,即,FalsePositive,)和,FN,(错误预测的阴性正常结果,即,FalseNegative,)。
按照这种表示方法,样本的分类情况可由表,15-1,表示预测结果,,总计,,,逾期阳性,正常阴性,,实际类别,逾期阳性,TP=40,FN=20,P=60,,正常阴性,FP=10,TN=30,N=40,,总计,50,50,,表,15,-,1,分类算法预测结果,,分类,模型的常见评价指标包括:,1.,准确率,A,ccuracy,:准确率是最直观的评价指标,即被正确分类的样本数除以样本总数上面这个例子中正确率,,2.,精确率,P,recision,:即所有被分类为逾期阳性的样本中,实际上是逾期阳性的样本所占的比例上面这个例子的精确率,,3.,召回率,R,ecall,:即所有真实分类为逾期阳性的样本中,被分类算法分类为逾期阳性的样本所占的比例上面这个例子的召回率,,4.,假阳率,F,alse,P,ositive,R,ate,:该指标表示被错误预测为逾期阳性(意味着它实际值是正常阴性)的样本,占所有实际为正常阴性的比例上面这个例子的假阳率,,5.,真阳率,T,rue,P,ositive,R,ate,:该指标表示被正确预测为逾期阳性的样本,占所有实际为逾期阳性的比例上面这个例子的真阳率和召回率,Recall,相等,,。
其他用来衡量分类算法性能的指标还包括:错误率(,Error Rate = 1-Accracy,)、灵敏度(,Sensitive= TP/P,)、特效度(,Specificity= TN/N),以及算法计算速度、可扩展性、鲁棒性(算法处理异常值和缺失值的能力)和可解释性等,混淆矩阵,在,Python,数据挖掘的应用中,很多算法训练后将得到表,15-1,的结果报告,称之为混淆矩阵,(Confusion Matrix),,进而计算得到上面提到的衡量指标算法训练、测试与,评估,很多,数据挖掘算法会将,AUC,的值和混淆矩阵一起输出,便于使用者对算法的分类效果进行评估图 15-3 算法训练、测试与评估,,图,15-3,描述了算法训练、测试与评估的主要过程首先将原始数据拆分成训练集和测试集,训练集,用于数据挖掘算法模型的学习,从而得到模型的各项参数(即知识),测试,集用于检验模型的分类效果,即将测试样本集输入到模型中,查看模型的输出是否与实际相符,通过,对预测分类结果和实际样本标签进行比较,就得到算法的评估情况在开展数据挖掘业务的过程中,模型接收的一般是一个静态数据,集比方说,我们的数据集是银行个人贷款的资料,其中包含了客户的个人信用信息、账户流水信息、以及客户是否逾期还款信息(即分类标签),。
这个,数据集通常会分为两部分:训练集和测试集,训练集,可能占据整个数据集的,80~90%,,用来训练数据挖掘模型,模型,训练完后,使用测试集检验模型的分类预测情况,得到一个分类结果(不会逾期,/,会逾期),这个,预测结果和测试集里的实际结果进行对比,就是表,15-1,混淆矩阵中,TP,、,FN,、,FP,、,TN,数据03,数据概况,,,,,,数据说明,Kaggle,网址,:,https://,,数据文件来自一个欧洲的信用卡发卡机构,记录了,2013,年,9,月中某两天的信用卡刷卡活动,数据,下载地址:, 15-4 正常交易与欺诈交易饼图,可以看出,原始数据包括,Time,,,V1,V2……V28,,,Amount,,,Class,等列,共有,284807,行,没有缺失值如果按照,Class,的取值分类绘制饼图,可以发现正常交易占了绝大多数比重按照原始数据文件说明,虚假交易的比例是,492/284807=0.1727%,接下来提出几个猜想,例如虚假交易是否和交易金融有关?是否和交易时间有关?然后验证这些猜想输出结果:,图,15,-,5,交易量与时间的关系,真实,/,欺诈交易与交易金额的关系,输出结果:,图 15-6 交易量与金额的关系,从图,15-5,和图,15-6,来看,虚假交易和正常交易在交易时间和交易金额这两个维度上都没有表现出明显的不一致。
也就意味从交易时间和交易金额上不能有效区分虚假和真实交易接下来对,V1-V28,个属性进行逐个验证,看看在哪一个属性上,虚假交易和真实交易有比较明显的区别输出:正常,/,欺诈交易在各属性下的分布关系,图 15-7,可以看到,在属性,V14,上,虚假交易和正常交易的分布区分比较明显;而在属性,V15,上,虚假交易和正常交易是叠加在一起的,很难区分如果要做进一步的相关性分析的话,,V14,和,V15,会有截然不同的结论很明显,如果只选取部分属性作为欺诈交易监测的目标,那么应该重点关注像,V14,这样的属性因为在这个属性上,正常交易和欺诈交易有明显的差异在实际应用中,是否要进行属性选择,取决于业务特征、数据规模、运算资源、决策时效等因素本案例后续的分析中,选择了全部属性参与模型训练,接下来使用该数据集来训练,Sklearn,内置的逻辑回归、随机森林和支持向量机等三种算法模型二、模型训练,首先要将数据集分成训练集和测试集将,70%,的数据作为训练集,,30%,作为测试集数据,也可以按照,75%-25%,分拆使用数据集依次对三种算法进行训练与测试需要强调的是:每次运行的最终结果可能会有一些微小的差异,这主要是由样本的随机抽样结果和算法本身的数学特性导致的。
1.,逻辑,回归,方法,,输出结果:,从逻辑回归的结果来看,在,85443,个测试样本中,有,85283,个正常交易样本被识别,,84,个虚假交易样本被识别但是,也有,12,个正常样本被错误标识成虚假交易,而,64,个虚假交易样本被错误标识成正常2.,随机,森林,算法,,以,决策树为基础,随机森林算法将多棵树集成为一片森林:每棵决策树都是一个分类器(假设现在针对的是分类问题),那么对于一个输入样本,,N,棵树会有,N,个分类结果,而,随机森林集成了所有的分类投票结果,将投票次数最多的类别指定为最终的输出,因为,随机森林算法是一个统计投票结果,因此那些随机扰动产生的错误会在很大程度上被缓解,其结果会更加稳定,准确率也比较高Scikit,中已经集成了随机森林算法,可以直接调用随机森林,算法程序如下:,输出结果:,,3.,支持,向量机,算法,,输出结果:,从支持向量机的结果来看,在,85443,个测试样本中,有,85163,个正常交易样本被识别,只有,10,个虚假交易样本被识别有,132,个正常样本被错误标识成虚假,而,138,个虚假样本被错误标识成正常在这个案例中,预测效果最好的是随机森林模型;运行速度最快的是逻辑回归,;,而,支持向量机的表现比较差,大部分的虚假交易样本都没有被检测出来,同时算法标识的虚假交易中有很多被错误标识的正常交易。
可见,在真实的案例中,并不是数学理论复杂的方法一定会有好的效果,本,例的三个分类算法中,随机森林算法相对较简单,但在预测效果和执行速度上,都取得了更好的结果三、模型应用,模型训练好以后,就可以使用模型进行预测了从,x_test,测试集中随机抽取一条记录,考察用三种训练好的模型对它进行正常,/,欺诈交易分类的结果输出结果:,明显地,对于输入的这样一组由,V1,V2……V28,项数据构成的一个样本,三个模型都给出相同的结果,0,,也就意味着这是一个真实的信用卡交易请注意,因为,x_test,测试集由随机抽取产生,所以每次运行取第,10,条得到的,new_input,很可能是不同的,当然,测试结果也会有差异本章小结,早期鉴别虚假交易主要依靠人工甄别:信用卡交易结束后,收单行人工将刷卡凭证传递到发卡行,发卡行根据凭证进行资金清算,在资金清算过程中甄别虚假交易人工甄别虚假交易具有时间滞后和易遗漏等不足随着计算机和网络通信技术的发展,虚假交易识别进入了规则判断阶段:联网的,POS,机实时将交易数据传递到发卡行或者信用卡发行机构的服务器上,由程序根据事先总结出来的经验规则对于异常的刷卡地点、时间、金额、频率进行判断,从而在交易中实时发现可能的虚假交易。
目前,虚假交易识别已进入大数据人工智能识别阶段该阶段借助信用卡交易大数据记录和飞速发展的数据挖掘算法,能在第一时间发现可疑的虚假交易,从而避免损失、遏制违法犯罪活动重要概念,信用卡,虚假,交易,虚假交易鉴别业务流程,人工甄别,规则判断,大数据人工智能识别,复习思考题,自己上,kaggle,网,网站:,https,://, 下节课见,。