您好,欢迎访问三七文档
R实训论文年级14级班级04班学号20140404430姓名王增飞提交日期2017.5.121侦测欺诈交易(王增飞吕梁学院吕梁033000)摘要考虑到在经济和社会领域中经常存在欺诈交易等非法活动,因此欺诈拉验是数据挖粼技术的一个重要应用领域。从数据分析的角度,欺诈行为通常和异常的观测值相关联,因为这些欺诈行为是偏离常规的。在多个数据分析领域,这些偏离常规的行为经常成为离群值.数据挖翻的结果有助于公司的事后检查活动,能够提供某种欺诈概率排序作为输出结果,可以使公司以最佳方式来利用其事后检查资源。关键词缺失值填补决策精确度回朔精确度半监督技术scams(WangLvliangXueyuanLvliang033000)AbstractThefraudisanimportantareaofapplicationfordatamining,giventhatthereareoftenillegalactivitiessuchasfraudulenttransactionsintheeconomicandsocialsectors.Fromthepointofviewofdataanalysis,fraudisoftenassociatedwiththeobservedvalueofanexception,asthesearedeviationsfromthenorm.Inthefieldofmultipledataanalysis,thedeviationfromnormalbehavioroftenbecomeoutliers.Datadigresultshelpthecompanypost-mortemactivity,canprovidesomekindoffraudprobabilitysortingasoutput,canmakethecompanyinthebestwaytousethepost-mortemresources.KeyMissingvaluefillDecision-makingaccuracyBacktonewmoonaccuracyAsemi-supervisedtechnology引言侦测欺诈交易的目的是找到“奇怪的”交易记录报告,它可能指出某些销售员涉嫌欺诈.这里用的数据是一个较短时期内的销售数据,销售员可按照ti己的策略和公司情况来自由设置梢售价格。我们的日的是根据公司过去发现的交易报告中的错误和欺诈企图,帮助公司完成核实这些悄售报告真实性的工作。1目标任务根据公司过去发现的交易报告中的错误和欺诈企图,帮助公司完成核实这些销售报告真实性的工作。我们提供一份欺诈率排名的报告,这个欺诈率排名将允许公司把有限的检验资源分配给系统所提示的更“可疑”的那些报告。2数据来源load('sales.Rdata')将从这个文件中把数据载入到一个名为sale的数据框library(DMwR)data(sales)使用本书添加包中的数据2得到了名为sale的数据框,里面存的是下面将会用到的数据3数据探索性分析3.1探索数据集使用summary函数,了解数据的统计特征ID:说明销售员ID的一个因子变量。Prod:说明销售产品ID号的一个因子变量。Quant:报告该产品销售的数量。Val:报告销售记录的总价值。Insp:有3个可能值的因子变量——ok表示公司检查了该交易并认为该交易有效;fraud表示发现该交易为欺诈;unkn表示该交易未经过公司审核。进一步使用nlevels函数发现数据中包含大量的产品和销售人员的信息从数据的统计特征初步可以看出v431号雇员录入的数据最多,p1125号产品卖出最多,可以看到产品销售的数量和总价值的四分位数据,公司已检查承认有效的数据有14462,已发现欺诈的数据有1270,未经过审查的有385414,说明大量数据还未经过审核,需要接下来的数据分析来检查其中的欺诈数据。3.1.3.使用Length函数计算总数据中有多少缺失数据可以看到这样的数据有888条,在40万组数据中可以忽略不计。应该注意当数据量特别大时,改用summary函数3在统计过的销售记录中,根据以上的数据结果可以看出,交易有效的是3%,交易欺诈的是0.31%,未经审核的是96%,说明欺诈比例比较小。每个交易人员的交易数量如图3-1。图3-1每个产品的交易数量如图3-2。图3-24结合两张图可以看到:所有销售人员的数据相当不同,对于每个产品,波动性较大,所以,下面需要对不同的产品分别进行处理。如果两个交易报告中的产品是相同的,而产品的标准价格差别太大,那么其中的一个交易报告将视为不正常,不过,用这两个数量得出的结论可能不是理想的根据。实际上,由于每个交易中销售的产品数量不同,所以用单位产品的价格来进行上面的分析可能更正确。可以把这个单位产品价格作为新的一列加入到数据中。可以看出,当分析一个较短的时期内的交易时,产品的交易价格不会出现较大的变化。得到五个中最贵和最便宜的产品如图3-3。图3-3下面类似进行分析,找出给公司带来更多(少)资金的销售人员可以看出给公司带来大部分资金的是前100名销售人员的资金收入,底部2000人的总收入却不足公司的2%,说明,该公司需要进行内部改革。53.2.3如果我们对每个产品所销售的数量进行类似分析,结果更加不平衡由上面的数据可知,这个数据对产品的生产十分有用,它并不意味着公司应该停止生产销售量少的产品。为了发现交易异常,我们做出一个假设,所有产品的单位价格都遵循正态分布。4数据清洗4.1缺失值分析处理缺失值的方法有三种:1、剔除这些个案;2、用某些策略来填补缺失数据;3、运用可以处理缺失值的工具(本文主要用前两种方法)有些产品只有极少的交易量,需要从这些交易的信息来确定交易中是否有异常,这会很困难,所以我们采用将这些物品和一些产品的交易一起来分析,从而避免这个问题。4.2缺失值处理变量Quant和变量Val都有数据缺失交易,上面3.1.3提到因为这样的数据有888条,在40万组数据中可以忽略不计。但是,在实际问题中,如果将这888个案例全部剔除,会导致某些产品和销售人员的大部分交易值缺失,所以,全部剔除888个案例是有问题的,下面的代码是验证这一结论:6先给出每个销售人员和产品的交易数量以及存在问题的交易相关的销售人员和产品,下面给出变量Quant和变量Val同时有缺失值的交易占很大比例的销售人员:结果表明:从销售人员来看,同时在这两个变量都有缺失的交易数很少,所以,可以直接剔除在两个变量都有缺失的交易。下面给出变量Quant和变量Val同时有缺失值的交易占很大比例的产品:从以上两部分来看,剔除所有同时在数量和价格上有缺失值的交易是最好的选择。下面分析剩余的在数量或者价格变量上有缺失值的交易,首先计算每一种产品在数量上有缺失值的交易比:P4491产品的所有交易数量是缺失的,由于我们没有其单位价格,所以,没有办法得到进一步的信息,所以,我们无法用这些产品的交易信息做进一步分析。下面,我们从数据集中删除该种产品的信息,由于我们在数据集中删除了该种产品的信息,所以,我们要更新列Prod的水平,检验是否有销售人员的所有交易数量为缺失值?从结果可以看到:有几个销售人员没有在报告中填写交易的数量信息,但是,由于我们使用单位价格做的假设,所以,只要我们有其他销售人员报告的相同产品的交易,我们就可以用那些信息来填补这些缺失值,所以,我们不需要删除这些交易。下面分析剩余的数量或价格变量上有缺失值的交易,先计算每一种产品在数量上有缺失值开始:P2442和p2443这两个产品的交易数量有缺失,所以,我们无法可用这些值来进行下一步分析。7下面我们计算每一个产品的标准价格,来填补缺失值,因为每个产品有一个标准单价,我们用它们来计算两个可能的缺失值。当有些产品只有极少的交易,用这些数据来分析是否有异常,是很困难的,下面我们把其他一些产品的交易加进来一起分析上面使用函数获得中位数,第一个四分位数和第三个四分位数。对每个产品的所有交易量,计算这些统计值,从分析中剔除有欺诈的交易。行名称在为其寻找最相似的产品,第一列是相似产品,下面得到相似产品的ID下面找相似产品的数量从上面结果可以看到:从其他交易中产品数得到我们所需要的产品信息,这对于我们分析哪些交易是不正常交易是有用的。8实验结果:9结果可以看出:决策精确度和回朔精确度很低,这个结果很有可能是错误的,下面我们所调用的函数通过应用每一次迭代(ho.BPrule)的排序方法返回这些值作为统计量向量的属性。得到下面两张图:两张图都是对每次保留(hold-out)过程得到的曲线的垂直平均,为了达到80%的回朔精确度,下面用LOF方法:由图可以可以看出:对于低于25%-30%的检验限值,LOF方法要优于BPrule方法,对于高的检验值,两者差别不明显。5数据建模5.1实验方法我们使用的数据集的大小很合理。这种情况下,我们选择保留方法来进行实验是比较有意义的。这个方法把已有的数据集随机地分成俩部分(通常比例为70%和30%),其中的一部分用于获取模型,而另一部分用来测试。如果有必要,这个过程可以重复多次,以确保获得的结果更稳健。我们数据集的容量可以确保我们获得的结果在统计学上是可靠的。如果,我们选择30%的数据作为验证集,就相应于120343个报告。在这种方法下,困难就是不同类型报告之间分布的不均衡性,即在标记个案上是不平衡的,正常的重抽样策略可能会导致一个测试集的正常报告/.欺诈报告的不同分布。当有这种不均衡的分布类型时,推荐使用分层抽样方法。这种方10法从具有不同类型的观测值袋子里随机抽样,以确保所抽取的样本遵守初始数据的分布。5.2建模方法数据集中有两种类型的观测值,有一个较小的数据集,其中的数据没有标记,它有交易的特征描述和检验的结果。另外一个较大的数据集是没有标记的,它们没有被检验,列Insp的值为unkn,在这种情况下,取决于用于建模的观测值。我们采用的建模方法是无监督技术。对于未被检验的报告,Insp列没有任何信息,所以它对分析没有影响,对于这些观测值,我们只有对交易的描述。这意味着这些销售报告仅仅有描述它的自变量。聚类分析是描述性数据挖局的一个例子,聚类方法试图对一组观测值形成多个聚类,一个聚类内的个案相似,从而找到这些观测值的“自然”组别。相似性概念通常要求由观测值的变量所定义的空间给出一个距离定义。这个距离定义衡量一个观测值和其他观测值之间距离的函数。距离靠近的个案通常认为属于同一个自然组。异常值检测也可以看做是描述性的数据挖掘任务。有些异常值(也称为离群值)检测方法假定数据的预期分布,把背离这一分布的任何值标记为异常值,另一个常见的异常值检测策略是假定一个变量空间的距离度量,然后把距离其他观测值“太远”的观测值标记为异常观测值。应用PRcurve()函数表示出给出数据的曲线图,并用这类曲线来评价异常值排序模型11这部分内容主要讨论:当给出交易报告的一个测试集时,每个模型将产生这些报告的排序,所以,下面将主要讨论怎样评价这个排序。当我们的目标是预测一个小集合的事件时,决策精确度和回朔精确度是合适的评价指标。给定检验限制k值,我们可以计算排序的最顶端k个位置的决策精确度和回朔精确度。这个限定值k决定了根据模型哪些报告应该被检验。从监督分类的角度看,这相当于把顶端的k个位置预测为frant类,其余的则为正常报告,决策精确度告诉我们顶端k个值的多大比例事实上是标记为欺诈的报告。回朔精确度的值给出这k个位置所包含的测试集的欺诈行为的比例。通常决策精确度和回溯精确度之间有一个权衡。比如,如果所有测试集个案都预测为欺诈事件,那么很容易使决策金确度达到100%。然而,这样的决策也将不可避免的导致非常低的回溯精确度。但是,我们当前的应用有一些特殊性。给定用于检验行为的资源的约束条件,我们真正想要的是最大限度的利用这些资源。这意味着,如果我们用x小时检查报告,并能够在这x个小时捕捉到所有的欺诈行为,那么我们很高兴。即使在这x小时,我们实际上也检查了一些正常的报告,也
本文标题:侦测欺诈交易
链接地址:https://www.777doc.com/doc-5548798 .html