R语言侦测欺诈交易.docx

R语言侦测欺诈交易

背景

考虑到在经济和社会领域中经常存在欺诈交易等非法活动,因此欺诈检验就就是数据挖掘技术得一个重要应用领域。从数据分析得角度,欺诈行为通常和异常得观测值相关联,因为这些欺诈行为就就是偏离常规得。在多个数据分析领域,这些偏离常规得行为经常成为离群值。数据挖掘得结果有助于公司得事后检查活动,能够提供某种欺诈概率排序作为输出结果,可以使公司以最佳方式来利用其事后检查资源。

目得

侦测欺诈交易得目得就就是找到“奇怪得”交易记录报告,她可能指出某些销售员涉嫌欺诈。这里用得数据就就是一个较短时期内得销售数据,销售员可按照自己得策略和公司情况来自由设置销售价格。我们得目得就就是根据公司过去发现得交易报告中得错误和欺诈企图,帮助公司完成核实这些销售报告真实性得工作。

1、加载数据:

共401146行数据,每一行包括来自销售员报告得信息。

ID:说明销售员ID得一个因子变量。

Prod:说明销售产品ID号得一个因子变量。

Quant:报告该产品销售得数量。

Val:报告销售记录得总价值。

Insp:有3个可能值得因子变量——ok表示公司检查了该交易并认为该交易有效;fraud表示发现该交易为欺诈;unkn表示该交易未经过公司审核。

2、数据集探索:

>sum(is、na(sales$Quant)is、na(sales$Val))

[1]888

从数据得统计特征初步可以看出v431号雇员录入得数据最多,p1125号产品卖出最多,可以看到产品销售得数量和总价值得四分位数据,公司已检查承认有效得数据有14462,已发现欺诈得数据有1270,未经过审查得有385414,说明大量数据还未经过审核,需要接下来得数据分析来检查其中得欺诈数据。

数据中有大量缺失值,当重要产品销售数和销售总价值同时缺失时,就无法进行分析,这样得数据有888条,在40万组数据中可以忽略不计。

判断数据框中每个变量得属性:

str(sales)

data、frame:401146obs、of5variables:

$ID:Factorw/6016levels"v1",v2,v3,、、:1234356789、、、

$Prod:Factorw/4548levelsp1","p2",p3,、、:1111122222、、、

$Quant:int1823072203931126164104350200233118、、、

$Val:num1665878076990110020260、、、

$Insp:Factorw/3levels"ok",unkn,fraud:2222222222、、、

可以看到ID,Prod,Insp就就是因子型变量,Quant整数型,Val数值型。

table(sales$Insp)/nrow(sales)*100

okunknfraud

3、612420096、07028470、3172953

在只考虑已检查过得销售记录,看到欺诈比例较小。

绘制每个交易人员得交易数量和每个产品得交易数量图形

totS-table(sales$ID)

totP<-table(sales$Prod)

barplot(totS,main=Transactionspersalespeople',names、arg=,xlab=Salespeople',

ylab='Amount)

barplot(totP,main=Transactionsperproduct',names、arg=',xlab='Products,

ylab=Amount)

看到所有销售人员得数据相当不同,对于每个产品,波动性较大。

sales$Uprice-sales$Val/sales$Quant

summary(sales$Uprice)

Min、1stQu、MedianMean3rdQu、Max、NAs

0、008、4611、8920、3019、1126460、0013248

检查产品单位价格得分布,看到有明显得变动性。

out-tapply(Uprice,list(Prod=Prod),function(x)length(boxplot、stats(x)$out))

out[order(out,decreasing=T)[1:10]]

sum(out)

[1]29446

sum(out)/n

文档评论(0)

1亿VIP精品文档

相关文档