欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《侦查欺诈交易》PPT课件.ppt

    • 资源ID:5463342       资源大小:251KB        全文页数:58页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《侦查欺诈交易》PPT课件.ppt

    侦查欺诈交易,郝召 马骁,为什么研究欺诈交易,数据挖掘的结果有助于公司的事后检查活动数据挖掘过程能够提供某种欺诈概率排序作为输出结果,可以使公司以最佳方式来利用其事后检查资源应用方面:信用卡交易、税务申报检验等本章新的数据挖掘主题:离群值活异常值检验、聚类分析、办监督预测模型,问题的描述与目标,欺诈行为通常与异常的观测值相关联,因为这些欺诈行为是偏离常规的。在多个数据分析领域,这些偏离常规的行为经常称为离群值,问题的描述与目标,本案例使用的数据时某公司的销售员所报告的交易数据。这些销售员负责销售该公司的产品并定期报告销售情况。销售员可以按照自己的策略和市场情况来自由设置销售价格。月末,向公司报告销售情况。数据挖掘应用的目的是根据公司过去发现的交易报告肿的错误和欺诈企图,帮助公司完成核实这些销售报告的真实性的工作。提供一份欺诈率排名报告,这个欺诈率排名将允许公司把有限的检验资源分配给系统提示的更“可疑”的那些报告,可用的数据,数据来自一个未公开的渠道共401 146行,每一行包括来自销售员报告的信息。包括:ID:说明销售员ID的一个因子变量Prod:说明销售产品ID号的一个因子变量Quant:报告该产品销售的数量Val:报告销售记录的总价值Insp:有三个可能值的因子变量ok表示公司检查了该交易并认为该交易有效;fraud表示发现该交易为欺诈;unkn表示该交易未经过公司审核。,加载数据,library(DMwR)data(sales)head(sales)得到一个名为sales的数据框,探索数据集,Summary()函数可以使人们出不了解数据的统计特征summary(sales)数据中有大量的产品和销售人员信息,探索数据集,还可以用nlevels()来确认这一点nlevels(sales$ID)nlevels(sales$Prod),探索数据集,如果在同一个交易中Quant列和Val列有大量的缺失值,就会产生比较严重的问题,这回导致一条销售交易中的有关销售量的关键信息缺失。检验如下:length(which(is.na(sales$Quant)&is.na(sales$Val)sum(is.na(sales$Quant)&is.na(sales$Val),探索数据集,欺诈行为的比例对于总体而言是很低的table(sales$Insp)/nrow(sales)*100绘制每个交易人员的交易数量和每个产品的交易数量图形totS-table(sales$ID)totP-table(sales$Prod)barplot(totS,main=Transactions per salespeople,names.arg=,xlab=Salespeople,ylab=Amount)barplot(totP,main=Transactions per product,names.arg=,xlab=Products,ylab=Amount),探索数据集,探索数据集,检查产品单位价格的分布:sales$Uprice-sales$Val/sales$Quantsummary(sales$Uprice)Min.1st Qu.Median Mean 3rd Qu.Max.NAs 0.00 8.46 11.89 20.30 19.11 26460.00 14136,探索数据集,检查最贵的和最便宜的产品用单位价格的中位数来代表已经销售的产品的标准价格attach(sales)upp-aggregate(Uprice,list(Prod),median,na.rm=T)topP-sapply(c(T,F),function(o)upporder(upp,2,decreasing=o)1:5,1)colnames(topP)-c(Expensive,Cheap)topP,探索数据集,用上述5个产品的单位价格的箱图来确认它们完全不同的价格分布:tops-salesProd%in%topP1,c(Prod,Uprice)tops$Prod-factor(tops$Prod)boxplot(Uprice Prod,data=tops,ylab=Uprice,log=y),探索数据集,找出那些给公司带来更多(少)资金的销售人员:vs-aggregate(Val,list(ID),sum,na.rm=T)scoresSs-sapply(c(T,F),function(o)vsorder(vs$x,decreasing=o)1:5,1)colnames(scoresSs)-c(Most,Least)scoresSs,探索数据集,给公司带来更多资金的前100名销售人员的资金收入几乎占公司资金收入的40%,而底部的2000人的总收入不足公司总收入的2%。这说明,该公司需要进行内部改革。sum(vsorder(vs$x,decreasing=T)1:100,2)/sum(Val,na.rm=T)*100sum(vsorder(vs$x,decreasing=F)1:2000,2)/sum(Val,na.rm=T)*100,探索数据集,对每个产品所销售的数量进行类似的分析,有:qs-aggregate(Quant,list(Prod),sum,na.rm=T)scoresPs-sapply(c(T,F),function(o)qsorder(qs$x,decreasing=o)1:5,1)colnames(scoresPs)-c(Most,Least)scoresPssum(as.double(qsorder(qs$x,decreasing=T)1:100,2)/sum(as.double(Quant),na.rm=T)*100sum(as.double(qsorder(qs$x,decreasing=F)1:4000,2)/sum(as.double(Quant),na.rm=T)*100,探索数据集,确定每个产品的异常值个数:out-tapply(Uprice,list(Prod=Prod),function(x)length(boxplot.stats(x)$out)outorder(out,decreasing=T)1:10,探索数据集,找到29446个被认为是离群值的教一,相当于总交易的7%sum(out)sum(out)/nrow(sales)*100,数据问题,处理缺失值的办法:1)剔除这些个案2)用某些策略来填补缺失数据3)运用可以处理缺失值的工具,数据问题,前面提到,主要的问题是变量Quant和Val都有数据缺失的交易,如果移除所有的888个个案将导致剔除某些产品或是销售人员的大部分交易,这时候全部剔除888个个案是有问题的,下面,检查这种情况是否会发生,数据问题,可以用下面的代码显示与存在问题的交易有关的销售人员和产品,以及变量Quant和Val同时有缺失值的交易占很大比例的交易人员:至少从销售人员方面来看,直接剔除这些同时在两个变量有缺失值的交易时合理的,因为它们代表了很小的一部分交易,数据问题,两个变量都有缺失值的交易占较大的比例的产品:多个产品将被剔除的交易超过20%,特别是产品p2689将有近40%的交易被删除。有点太多了,数据问题,如果剔除有缺失数据的交易后只有少量的交易,那么我们就可以和类似产品的交易相结合一增加离群值检验的统计可靠性。总之,剔除所有同事在数量和价格上有缺失值的交易时最好的选择detach(sales)sales-sales-which(is.na(sales$Quant)&is.na(sales$Val),detach()函数是用来禁止直接访问数据框的列,数据问题,分析剩余的在数量或者价格变量上有缺失值的交易。计算每一种产品在数量上有缺失值的交易:P2442和p2443两个产品所有的交易数量是缺失的,因此我们无法计算其标准价格,所以这些产品的交易信息不可能进行任何分析。标记为ok的报告,意味着检查员掌握了比这个数据集更多的信息,或者我们得到的数据有输入错误,因为从这些交易中似乎不可能得到任何结论,基于此,将删除这些交易报告:,数据问题,sales-sales!sales$Prod%in%c(p2442,p2443),删除了两种产品,得到新的的Prod的水平nlevels(sales$Prod)sales$Prod-factor(sales$Prod)nlevels(sales$Prod),数据问题,是否有销售人员的所有交易数量为缺失值?从结果上看,有几个销售人员没有在报告中填写交易的数量信息。我们只要有其他销售人员报告的相同产品的交易,就可以尝试使用此信息来填补那些缺失值,数据问题,对交易的Val列的缺失值进行类似的分析这些数字是合理的,因为删除这些交易是没有意义的,我们将用其他的交易来填补这些缺失值,数据问题,从销售人员方面,计算这些数字的方法如下:同样,这个比例不是太高在这个阶段,我们已经删除了所有没有足够信息来填补缺失值的报告我们将首先获得每一个产品的标准单价,计算标准价格时,跳过标记为欺诈的交易价格,数据问题,对剩余的交易,我们将使用每个产品单位价格的中位数作为相应产品的标准价格:tPrice-tapply(salessales$Insp!=fraud,Uprice,list(salessales$Insp!=fraud,Prod),median,na.rm=T),数据问题,因为我们没有交易同时在这两个变量上有缺失值,所以每一个产品有了一个标准单价后,我们就可以用它来计算两个可能的缺失值(Quant和Val)。下面的代码将填补所有剩余的缺失值。然后重新计算Uprice列的值来填补先前未知的单位价格保存数据集,数据问题,有些产品只有极少的交易,因为太少的交易,在要求的统计学显著性下很难做出决定。这种情况下,考虑是否可以喝一些产品的交易一起分析来避免这个问题尽管缺失产品之间关系的信息,但可以尝试通过观察产品单价分部之间的相似性来推断其中的一些关系,如果可以发现具有类似价格的产品,我们可以考虑合并它们相应的交易并对它们一起进行分析,从而找到异常值比较两个分布的一种方法是可视化检查法(在此不可行);另一种是比较总结分布的一些统计特性。连续变量分布 的两个重要属性是集中趋势和离散趋势这里使用中位数作为衡量中心的统计量,应用四分位距(IQR)作为离散指标的统计量更有意义,数据问题,上面的代码使用函数boxplot()获得中位数、第一个四分位数和第三个四分位数。对每个产品的所有交易,计算这些统计量,从分析中剔除有欺诈的交易。有了这些统计量以后,得到含有每个产品的中位数和四分位距的一个矩阵,数据问题,根据每个产品的中位数和IQR绘制的图形 par(mfrow=c(1,2)plot(ms,1,ms,2,xlab=Median,ylab=IQR,main=)plot(ms,1,ms,2,xlab=Median,ylab=IQR,main=,col=grey,log=xy)smalls-which(table(Prod)20)points(log(mssmalls,1),log(mssmalls,2),pch=+),数据问题,对于交易数量少于20的产品,我们将寻找与它的单位价格分布最相似的产品,然后用Kolmogorow-Smirnov检验来检查两个产品是否在统计意义上相似。下面的代码用来获得一个矩阵(similar)。矩阵中存储的事这种少于20个交易的每个产品的检查信息,用对象ms来保存前面获得的每个产品的单位价格的中位数和IQR,数据问题,dms-scale(ms)smalls-which(table(Prod)20)prods-tapply(sales$Uprice,sales$Prod,list)similar-matrix(NA,length(smalls),7,dimnames=list(names(smalls),c(Simil,ks.stat,ks.p,medP,iqrP,medS,iqrS)for(i in seq(along=smalls)d-scale(dms,dmssmallsi,FALSE)d-sqrt(drop(d2%*%rep(1,ncol(d)stat-ks.test(prodssmallsi,prodsorder(d)2)similari,-c(order(d)2,stat$statistic,stat$p.value,mssmallsi,msorder(d)2,)head(similar),数据问题,矩阵similar对象的前几行,数据问题,用下面的代码得到矩阵similar前几行相应产品的ID:levels(Prod)similar1,1在90%的显著水平下,我们可以检查单位价格分布有相似性的产品的数量:nrow(similarsimilar,ks.p=0.9,)或者是sum(similar,ks.p=0.9)保存similar对象save(similar,file=similarProducts.Rdata),定义数据挖掘任务,有些交易报告被强烈怀疑为欺诈交易,这个应用程序的主要目的是运用数据挖掘工具,为确定是否核查这些交易提供指导。由于可用于该检查任务的资源师有限的并且是变化的,因此这个指导应该以欺诈概率排序的形式给出,问题的不同解决方法,主要问题是大多数可用的报告没有被检验从确定已有报告是否为欺诈的任务角度来看,变量Insp中的unkn值和缺失值的意义是一样的。这个值代表缺少这笔交易是OK还是欺诈信息。也就是说,我们的数据集有两种类型的观测值,我们有一个较小的数据集,其中的数据有标记,它有交易的特征描述和检验的结果。另一个较大的数据集是没有标记的,它们没有被检验,列Insp的值为unkn。在这种情况下,取决于用于建模的观测值的类型,我们有不同的建模方法。,1、无监督技术,我们面临的不是预测任务(即有监督方法的目标),而是一个描述性的数据挖掘任务对于未被检验的报告,Insp列没有任何信息,所以它对分析没有影响。对于这些观测值,我们只有对交易的描述。这意味着这些销售报告仅仅有描述他的自变量,这种类型的数据适用于非监督学习技术。即它们的目标不是像有监督的方法那样在“老师”的监督下学习概念。,无监督技术,聚类分析是描述性数据挖掘的一个例子。聚类方法师徒对一组观测值形成多个聚类,一个聚类内的个案相似,从而找到这些观测值的“自然”组别。相似性概念通常要求由描述观测值的变量所定义的空间给出一个距离定义这个距离定义是衡量一个观测值和其他观测值之间距离的函数距离靠近的个案通常认为属于同一个自然组,无监督技术,异常值检验也可以看做是描述性的数据挖掘任务。有些异常值(或称为离群值)检验方法假定数据的预期分布,把背离这一分布的任何标记值记为异常值。另一个常见的异常值检验策略是假定一个变量空间的距离度量,然后把距离其他观测值“太远”的观测值标记为异常观测值,无监督技术,我们的目标是得到一组观测值的异常值排序这个排序作为公司内检验决策的基础这意味着选择的无监督工具必须可以用来识别和排列异常值,有监督技术,目标:是找到目标变量(需要学习的概念)和一组自变量(预测变量或者属性)之间的关系这个模型可以认为是一个与描述了目标变量Y和预测变量 之间关系的未知函数Y=f()的近似。这个模型技术的任务是得到能够优化某些选择准则的模型参数,半监督技术,找到标记观测值的成本很大,或是有目标变量取值的个案很难找到,因此有了半监督办法,这种信息通常需要领域专家的工作,这增加了数据收集的成本。另一方面,随着传感器和其他类型数据自动采集装置的广泛使用,没有标签的数据往往是容易获得的。因此,经常遇到的问题是很大比例的数据没有标记,二只有少量的带标记数据和它们一起。,半监督技术,半监督技术之所以这么命名是因为它可以处理这种存在有标记个案和为标记个案的数据集通常有两种不同的半监督方法:一种是:借助未标记个案提供的额外信息来提高标准的监督分类算法的性能另一种是:半监督聚类方法,它尝试在聚类过程中形成组别的准则上包含一些约束,这些约束是基于标记的数据,这样就可以对聚类过程进行纠偏,半监督技术,半监督聚类的思想是利用现有的标签来对聚类过程纠偏,使相同的个案在同一类中(must-link),或者把不同的个案放入不同的组中(cannot-link),评价准则,当给出交易报告的一个测试集时,每个模型将产生这些报告的排序。本节讨论怎么评价这个排序我们数据集的特性是同事包含标记和未标记的数据。在这个应用中,它们被转换为检验和为检验的报告。着增加了模型比较的困难,因为对监督和无监督方法的评价方法通常是不同的。模型得到的排序很可能同时包含标记和未标记的观测值。对前者而言,很容易评价将标记数据列入待检查报告集合的正确性。在为标记的情况下,因为我们不能确定这些个案是否为欺诈,所以这种评价是比较困难的,决策精准度与回溯精确度,一个成功模型应该得到一个交易排序,其中已知的欺诈交易在排序的顶部。我们的数据中有欺诈的报告占少数。给定一个我们的资源所允许检验的报告个数k,我们希望在排序的顶部k个位置中,或许只有欺诈交易的报告或者为检验的报告。然而,我们希望这个测试集中所有已知的欺骗报告出现在这k个位置中,决策精准度与回溯精确度,当我们的目的是预测一个小集合的罕见事件(这里是欺骗)时,决策精确度和回溯精确度是合适的评价指标。给定检验限制k值,我们可以计算排序的最顶端k个位置的决策精确度和回溯精确度。这个限定值k决定了根据模型那些报告应被检验从监督分类的角度看,这相当于把顶端的k个位置预测为fraud类,其余的则为正常报告。决策精确度告诉我们顶端的k个值的多大比例事实上是标记为欺诈报告。回溯精确度的值给出这个k个位置所包含的测试集的欺诈行为的比例。我们所获得的值是悲观的,如果如果顶端k个值包括的是未标记的报告,它们不会进行决策精确度和回溯精确度的计算。但是,如果对它们进行了检验,我们就可以发现它们实际上是诈骗交易,因此决策精确度和回溯精确度可能会更高,提升图和PR曲线,不同的模型可能会在不同的水平上占据一定的优势,而且在比较模型时,着也可能成为有用的信息。决策精确度/回溯精确度(PR)曲线是模型性能对这两者的一种可视化表示。通过在不同的工作点得到上面的两个统计量的插值,从而得到该曲线。这些工作点由模型提供的感兴趣的类别排序的中断点给出,提升图和PR曲线,需要添加包ROCR通过函数prediction()来做预测,提升图和PR曲线,产生的PR曲线具有锯齿形状。这通常认为是不正确的,有一种方法可以克服这种情况。在一个确定的会随精确度r下,可以计算任何大于或等于r的回溯精确度水平所对应的决策精确度的最大值Precint,并把该值作为水平r的决策精确度,提升图和PR曲线,在performance()函数的返回值,我们发现一个名为y.values的属性,它包含图像y轴上的值,即所绘的决策精确度。我们依据上式计算插值的决策精确度,并用它替换y轴坐标值,就可以得到一个无锯齿效果的图。代码如下:PRcurve-function(preds,trues,.)require(ROCR,quietly=T)pd-prediction(preds,trues)pf-performance(pd,prec,rec)pfy.values-lapply(pfy.values,function(x)rev(cummax(rev(x)plot(pf,.)没有做出图,标准价格的标准化距离,为了避免不同价格对于异常值排名的影响,我们对单位价格和标准价格之间的距离进行标准化。运用IQR(四分位距)来标准化这个距离:其中Up是产品p的标准单位价格,是该产品交易的单位价格的中位数;而IQRp是该产品单位价格的四分位距,标准价格的标准化距离,用NDTPp的平均值作为评价模型性能的一个指标。用下列代码计算:上述函数是把模型所选择的用于检验的交易作为主要参数,标准价格的标准化距离,avgNDTP-function(toInsp,train,stats)if(missing(train)&missing(stats)stop(Provide either the training data or the product stats)if(missing(stats)notF-which(train$Insp!=fraud)stats-tapply(train$UpricenotF,list(Prod=train$ProdnotF),function(x)bp-boxplot.stats(x)$stats c(median=bp3,iqr=bp4-bp2)stats-matrix(unlist(stats),length(stats),2,byrow=T,dimnames=list(names(stats),c(median,iqr)statswhich(stats,iqr=0),iqr-statswhich(stats,iqr=0),median mdtp-mean(abs(toInsp$Uprice-statstoInsp$Prod,median)/statstoInsp$Prod,iqr)return(mdtp),

    注意事项

    本文(《侦查欺诈交易》PPT课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开