R语言侦测欺诈交易_第1页
R语言侦测欺诈交易_第2页
R语言侦测欺诈交易_第3页
R语言侦测欺诈交易_第4页
R语言侦测欺诈交易_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

r语言检测欺诈交易背景由于经济和社会领域经常存在欺诈交易等非法活动,欺诈检查是数据挖掘技术的重要应用领域。 从数据分析的角度来看,欺诈行为通常与异常观测值有关。 因为这些欺诈行为偏离了正常事物。 在多数数据分析领域中,这些不正常的行为常常具有偏离的值。 数据挖掘的结果有助于公司的事后检验活动,提供某种欺诈概率排名作为输出结果,使公司能够以最佳的方式利用事后检验资源。目的检测欺诈交易的目的是通过发现“奇怪”的交易记录报告书,一部分销售人员有可能指出有欺诈的嫌疑。 这里使用的数据是短期的销售数据,销售员可以根据自己的战略和公司情况自由设定销售价格。 我们的目的是帮助公司根据公司过去发现的交易报告的错误和欺诈企图,完成检验这些销售报告真实性的工作。1 .加载数据:401 146行的数据,各行包含销售员报告的信息。ID :说明销售员ID的要素变量。Prod :指示销售产品ID号的因子变量。Quant:报告此产品的销售数量。Val :报告销售记录的总价值。Insp:中有三个可能值的因子变量ok表示公司检查事务并且认为事务有效。fraud表示发现此事务是欺诈的。unkn表示此事务尚未通过公司审查。2 .数据集搜索:销售额(is.na ) is.na (销售额$ val )1 888根据数据的统计特征,v431号员工输入的数据最多,p1125号产品销售最多,产品销售数量和总价值的四分之一,公司检查有效数据的14462,发现欺诈的数据1270,未经审查的数据385414,大量如果数据存在大量缺失值,同时缺少关键产品的销售数量和总销售价值,则无法进行分析。 此类数据有888件,40万组数据可忽略。确定数据框中每个变量的属性销售(str )data.frame :401146 OBS.of5variables :$ ID : Factor w/6016 levels v1 , v2 , v3 ,12345678 是.$ prod : factorw/4548 levels P1 , p2 , p3 ,111112 2 .$ quant : int 1823072039361645352535253525352535253525352535253525352535253525352535253525352535253525352535253525352535253525352535253525352535253525352535253525352535253535253 .$ val : num 166587876595252525352535253525352535253525352535253525352535253535353535353535353535353535353535353535353535353535353535353 .$ Insp : Factor w/3 levels ok , unkn , fraud :222222 2 .ID、Prod、Insp为因子型变量、Quant整数型、Val数值型。表(销售$ insp ) /无(销售) * 100ok unkn fraud3.612420096.0702847.317283只考虑检查过的销售记录,欺诈的比例很少。为每个事务处理联系人和每个产品创建事务处理计数图表tots -表(销售$ id )totp-table (销售$ prod )barplot(totS,main=transactionspersalespeople,names.arg=,xlab=Salespeople,ylab=Amount )barplot(totP,main=Transactions per product,names.arg=,xlab=Products,ylab=Amount )看到所有销售员的数据相当不同,每个产品的变动性都很大。销售额$ up rice -销售额$ val /销售额$ quant摘要(销售$ up rice )min.1st qu.median mean 3rd qu.max.nas0.008.46.11.8920.3019.1126460.0013248检查产品单价的分布,可见明显的波动性。up rice,list(Prod=Prod ),function (x ) length (box plot.stats (x ) $ out ) )outorder(out,decreasing=T)1:10sum(out )129446sum(out)/nrow(sales)*10017.34047第一次发现了比29446件差的交易。 相当于交易的7.3%。3 .缺失值处理:确定变量Quant和变量Val中缺少值的事务处理占很大比例的销售人员tots -表(销售$ id )totp-table (销售$ prod )nas-sales which (is.na (销售量) is.na (销售量$ val ),c(ID , prod )props-100 *表(nas $ id )/totspropSorder(propS,decreasing=T)1:10v 1237 v 4254 v 4038 v 5248 v 3666 v 4433 v 417013.797993523818.3333338.3333336.666667.250005.55556v4926 v4664 v46425.555556 5.494505 4.761905可以考虑直接排除两个变量同时存在缺失值的交易销售-which (销售额$ val,is.na ) is.na )分析剩馀数量和价格变量有欠缺值的交易。 计算每个产品数量中缺少值的事务处理,并显示前10个事务处理NNA SQP-t应用程序(销售额$ quant,销售额$ prod,函数(x ) sum (is.na (x ) )propnasqp-NNA SMP /表(销售$ prod )propNAsQporder(propNAsQp,decreasing=T)1:10p2442p2443p1653p4101p4243p36781.00000001.0000000.90909090.85714290.6842105.66667.66667p4061 p3955 p43130.6666666670.642853710.6363636由于缺少P2442和p2443两个产品的所有交易数量,无法计算标准价格,因此无法分析这些产品的交易信息。 共有54份报告,标记为ok的报告,意味着检查员比这个数据集掌握了更多的信息,或者我们得到的数据中有输入错误。 似乎从这些交易中得不到任何结论,据此删除这些交易报告销售线索! 销售$ prod % in % c (p 2442,p2443 ) . )更新删除这两个产品的Prod:nlevels (销售$ prod )1 4548销售$ prod-factor (销售$ prod )nlevels (销售$ prod )1 4546要确定销售代表的所有事务处理数是否缺失,请执行以下操作NNA SQS-t应用程序(销售额$ quant,列表(销售额$ id ),函数(x ) sum (is.na (x ) )propnasqs-NNA SMS /表(销售$ id )propNAsQsorder(propNAsQs,decreasing=T)1:10v 2925 v 5537 v 5836 v 6058 v 6065 v 4368 v 29231.00000001.00000001.00000000.0000000.00000000.8888889.8750000v2970 v4910 v45420.8571429 0.8333333 0.8095238结果,一些销售人员没有在报告书中记录交易的数量信息。请勿删除这些事务,因为只要有其他销售人员报告的相同产品的事务处理,您就可以使用此信息来填补缺少的值。对于剩下的交易,以产品单价的中央值作为产品的标准价格t price-tr应用(销售销售$ insp!=fraud,Uprice ),list (销售销售$ insp!=fraud,Prod ),median,na.rm=T )以标准单价计算缺失值Quant和Val,并填充所有缺失值noquant-which (is.na (销售额$ quant ) )销售 noquant,quant -销售(销售 noquant,val /t价格销售 noquant,Prod )noval-which (is.na (销售$ val ) )销售 noval,val -销售 noval,quant * t价格销售 noval,Prod重新计算Uprice列中的值,并输入以前未知的单位价格销售额$ up rice -销售额$ val /销售额$ quant将缺少的值填入sales中保存,之后分析的数据使用该数据。由于一部分的产品只有很少的交易,而且交易量很少,所以很难在所要求的统计学上的有效性下进行决定。 在这种情况下,可以与若干产品的交易一起分析,以避免这个问题。 尽管没有产品间关系的信息,通过观察产品单价部门间的相似性,可以推测其中的几种关系,如果发现相似价格的产品,可以综合分析这些交易,找出异常值。 比较两种分布的方法是比较分布的统计特性。连续变量分布的两个重要属性是集中倾向和离散倾向,其中中心值为测量中心的统计量,四分位距离(IQR )为离散指标的统计量。notF-which(Insp!=fraud )ms-t应用程序(up rice notf 、列表(prod=prod notf )、函数(x )bp-boxplot.stats(x)$statsc (中值=BP 3,iqr=bp4-bp2 )中所述)ms-matrix(unlist(ms ),length(ms ),2,byrow=T,dimnames=list(names(ms ),c(median,iqr ) )head (毫秒)median iqrp1 11.346154 8.575599p2 10.877863 5.609731p3 10.000000 4.809092p4 9.911243 5.998530p5 10.957447 7.136601p6 13.223684 6.685185上面的代码使用函数boxplot ()获取中值、第一个四分位和第三个四分位。 计算每个产品的所有交易的统计值,并从分析中排除欺诈交易。 有了这些统计量,就可以得到包含每个产品的中央值和四分位距离的矩阵。par (MF row=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 (表) 20points(log(mssmalls,1 )、log(mssmalls,2 )、pch=)许多产品的中值和IQR基本相同,有少量交易的产品大多与其他产品相似。 但是,很难判断这些产品是否为欺诈交易。对于交易数小于20的产品,请寻找价格分布最相似的产品,然后使用Kolmogorow-Smirnov检查来检查两个产品是否在统计上相似。以下代码用于获得“矩阵”(similar )。 存储在矩阵中这一不足20个交易的每个产品的检查信息,以对象ms保存之前得到的每个产品的单价的中央值和IQR。DMS -缩放(ms )smalls-which (表) 20prods-t应用(销售$ up rice,销售$

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论